001: // THIS SOFTWARE IS PROVIDED BY SOFTARIS PTY.LTD. AND OTHER METABOSS
002: // CONTRIBUTORS ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING,
003: // BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
004: // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SOFTARIS PTY.LTD.
005: // OR OTHER METABOSS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
006: // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
007: // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
008: // OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
009: // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
010: // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
011: // EVEN IF SOFTARIS PTY.LTD. OR OTHER METABOSS CONTRIBUTORS ARE ADVISED OF THE
012: // POSSIBILITY OF SUCH DAMAGE.
013: //
014: // Copyright 2000-2005 © Softaris Pty.Ltd. All Rights Reserved.
015: package com.metaboss.applications.designstudio.userobjects;
016:
017: import java.util.ArrayList;
018:
019: import javax.swing.JTabbedPane;
020:
021: import com.metaboss.applications.designstudio.Application;
022: import com.metaboss.applications.designstudio.BasePropertiesDialog;
023: import com.metaboss.applications.designstudio.BaseUserObject;
024: import com.metaboss.applications.designstudio.components.SeparatorAction;
025: import com.metaboss.applications.designstudio.propertiesdialogs.DatatypePropertiesDialog;
026: import com.metaboss.applications.designstudio.propertiesview.PropertiesTableModel;
027: import com.metaboss.sdlctools.models.metabossmodel.MetaBossModelPackage;
028: import com.metaboss.sdlctools.models.metabossmodel.ModelElement;
029: import com.metaboss.sdlctools.models.metabossmodel.datadictionarymodel.AbstractNamespace;
030: import com.metaboss.sdlctools.models.metabossmodel.datadictionarymodel.DataType;
031: import com.metaboss.sdlctools.models.metabossmodel.datadictionarymodel.DataTypeClass;
032:
033: /* BODataType user object */
034:
035: public class DataTypeUserObject extends BaseUserObject {
036: public static final int PROPERTY_ACTION = 1;
037:
038: private DataType mDataType = null;
039: private StudyDependenciesAction mShowDataTypeDependenciesAction = new StudyDependenciesAction();
040:
041: public DataTypeUserObject(DataType pDataType) {
042: super (pDataType, Application.DATATYPE_ICON);
043: mDataType = pDataType;
044: }
045:
046: public DataTypeUserObject(DataType pDataType, String pCaption,
047: int pMode) {
048: super (pDataType, pCaption, pMode);
049: mDataType = pDataType;
050: }
051:
052: // create new datatype
053: public static void addNewDataType(AbstractNamespace pNamespace)
054: throws Exception {
055: new DataTypeUserObject(null)
056: .addNewObject(getObjectPackage(pNamespace), pNamespace
057: .getDataTypes());
058: }
059:
060: public BaseUserObject createNewObject(MetaBossModelPackage pPackage) {
061: DataTypeClass lClass = pPackage.getDataDictionaryModel()
062: .getDataType();
063: return new DataTypeUserObject(lClass.createDataType());
064: }
065:
066: public DataType getDataType() {
067: return mDataType;
068: }
069:
070: // return object root node captions
071: public String getRootNodeName() {
072: return Application.getString("datatypes_node");
073: }
074:
075: // load object properties into grid control
076: public void loadObjectProperties(PropertiesTableModel pModel)
077: throws Exception {
078: super .loadObjectProperties(pModel);
079: if (pModel == null || mDataType == null)
080: return;
081:
082: addModelElement(pModel, "Template", mDataType.getTypetemplate());
083: addModelElement(pModel, "Namespace", mDataType.getNamespace());
084: }
085:
086: // fill actions list
087: public void fillActionsList(ArrayList pList) {
088: super .fillActionsList(pList);
089: pList.add(new SeparatorAction());
090: pList.add(mShowDataTypeDependenciesAction);
091:
092: //switch (mMode)
093: //{
094: //case ALL_ACTIONS:
095: // super.fillActionsList(pList);
096: // if (!hasSource())
097: // {
098: // pList.add(new SeparatorAction());
099: // pList.add(mAddSourceAction);
100: // }
101: // break;
102: //case PROPERTY_ACTION:
103: // pList.add(mAddPropertyAction);
104: // break;
105: //}
106: }
107:
108: // add extra properties tabs
109: public void addExtraPropertiesTabs(JTabbedPane pTabbedPane) {
110: super .addExtraPropertiesTabs(pTabbedPane);
111: //pTabbedPane.insertTab("Template Properties", null, new PropertiesViewPanel(mDatatype.getTypetemplateProperties()), null, 1);
112: }
113:
114: public BasePropertiesDialog getObjectEditor() {
115: return new DatatypePropertiesDialog();
116: }
117:
118: // add property
119: private void addProperty() throws Exception {
120: PropertyUserObject.addNewProperty(mDataType);
121: }
122:
123: // can duplicate model element
124: public boolean canDuplicate() {
125: return true;
126: }
127:
128: // duplicate model element
129: public ModelElement duplicate() throws Exception {
130: DataType lDataType = (DataType) Application.sModelRepository
131: .duplicateModelElement(mDataType);
132: lDataType.setNamespace(mDataType.getNamespace());
133: return lDataType;
134: }
135:
136: }
|