Skip to content
Snippets Groups Projects
Commit 4a6ea735 authored by Kevin Kassin's avatar Kevin Kassin
Browse files

Made the palette appearance more modularizable part 2

now all the connection patterns manage their own palette appearance too
parent 413a6eac
No related branches found
No related tags found
No related merge requests found
Showing
with 139 additions and 136 deletions
package org.framed.iorm.ui.exceptions;
import org.framed.iorm.ui.literals.TextLiterals;
//TODO
public class NoFeatureForPatternFound extends RuntimeException {
/**
* serial
*/
private static final long serialVersionUID = 3388372441551168352L;
/**
* the exceptions message gathered from {@link TextLiterals}
*/
private static final String NO_FEATURE_FOR_PATTERN_FOUND = TextLiterals.NO_FEATURE_FOR_PATTERN_FOUND;
/**
* Class constructor
*/
public NoFeatureForPatternFound(String featureName) {
super(NO_FEATURE_FOR_PATTERN_FOUND + featureName);
}
}
......@@ -82,6 +82,11 @@ public class TextLiterals {
*/
public static final String FEATURE_HAS_NO_DESCRIPTOR_MESSAGE = "A Feature has no palette descriptor: ";
/**
* the message for the TODO
*/
public static final String NO_FEATURE_FOR_PATTERN_FOUND = "No feature could found for the pattern: ";
/**
* the message for the {@link TransformationFailedException}
*/
......
package org.framed.iorm.ui.multipage;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import javax.swing.plaf.multi.MultiTabbedPaneUI;
import org.eclipse.core.resources.IFile;
import org.eclipse.emf.ecore.resource.Resource;
......@@ -16,11 +11,7 @@ import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IFileEditorInput;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.forms.editor.FormEditor;
import org.framed.iorm.featuremodel.FRaMEDConfiguration;
import org.framed.iorm.model.Model;
import org.framed.iorm.model.Type;
import org.framed.iorm.ui.editPolicy.EditPolicyService;
import org.framed.iorm.ui.exceptions.InvalidTypeOfEditorInputException;
import org.framed.iorm.ui.literals.IdentifierLiterals;
import org.framed.iorm.ui.util.DiagramUtil;
......
package org.framed.iorm.ui.palette;
import java.util.HashMap;
import java.util.Map;
import org.framed.iorm.ui.literals.NameLiterals;
/**
* This static class is used to get information about when and where a feature with a specific name
* is shown in the palette.
* @author Kevin Kassin
*/
public class FeatureManager {
/**
* the name literals for shape create features gathered from {@link NameLiterals}
*/
private static final String ATTRIBUTE_OPERATION_COMMON_FEATURE_NAME = NameLiterals.ATTRIBUTE_OPERATION_COMMON_FEATURE_NAME,
MODEL_FEATURE_NAME = NameLiterals.MODEL_FEATURE_NAME,
GROUP_OR_COMPARTMENT_TYPE_ELEMENT_FEATURE_NAME = NameLiterals.GROUP_OR_COMPARTMENT_TYPE_ELEMENT_FEATURE_NAME,
COMPARTMENTTYPE_FEATURE_NAME = NameLiterals.COMPARTMENTTYPE_FEATURE_NAME,
NATURALTYPE_FEATURE_NAME = NameLiterals.NATURALTYPE_FEATURE_NAME,
DATATYPE_FEATURE_NAME = NameLiterals.DATATYPE_FEATURE_NAME,
GROUP_FEATURE_NAME = NameLiterals.GROUP_FEATURE_NAME,
ROLETYPE_FEATURE_NAME = NameLiterals.ROLETYPE_FEATURE_NAME,
ATTRIBUTE_FEATURE_NAME = NameLiterals.ATTRIBUTE_FEATURE_NAME,
OPERATION_FEATURE_NAME = NameLiterals.OPERATION_FEATURE_NAME;
/**
* the name literals for connection create features gathered from {@link NameLiterals}
*/
private static final String RELATIONSHIP_FEATURE_NAME = NameLiterals.RELATIONSHIP_FEATURE_NAME,
INHERITANCE_FEATURE_NAME = NameLiterals.INHERITANCE_FEATURE_NAME,
ROLEIMPLICATION_FEATURE_NAME = NameLiterals.ROLEIMPLICATION_FEATURE_NAME,
ROLEEQUIVALENCE_FEATURE_NAME = NameLiterals.ROLEEQUIVALENCE_FEATURE_NAME,
ROLEPROHIBITION_FEATURE_NAME = NameLiterals.ROLEPROHIBITION_FEATURE_NAME,
ACYCLIC_FEATURE_NAME = NameLiterals.ACYCLIC_FEATURE_NAME,
CYCLIC_FEATURE_NAME = NameLiterals.CYCLIC_FEATURE_NAME,
IRREFLEXIVE_FEATURE_NAME = NameLiterals.IRREFLEXIVE_FEATURE_NAME,
REFLEXIVE_FEATURE_NAME = NameLiterals.REFLEXIVE_FEATURE_NAME,
TOTAL_FEATURE_NAME = NameLiterals.TOTAL_FEATURE_NAME,
RELATIONSHIP_IMPLICATION_FEATURE_NAME = NameLiterals.RELATIONSHIP_IMPLICATION_FEATURE_NAME,
RELATIONSHIP_EXCLUSION_FEATURE_NAME = NameLiterals.RELATIONSHIP_EXCLUSION_FEATURE_NAME,
FULFILLMENT_FEATURE_NAME = NameLiterals.FULFILLMENT_FEATURE_NAME;
/**
* simple short forms of the palette categories to make code more readable
*/
private static PaletteCategory entities = PaletteCategory.ENTITIES_CATEGORY,
properties = PaletteCategory.PROPERTIES_CATEGORY,
relations = PaletteCategory.RELATIONS_CATEGORY,
constraints = PaletteCategory.CONSTRAINTS_CATEGORY,
none = PaletteCategory.NONE;
/**
* simple short forms of the view visibility to make code more readable
*/
private static ViewVisibility all = ViewVisibility.ALL_VIEWS,
top = ViewVisibility.TOPLEVEL_VIEW,
compartment = ViewVisibility.COMPARTMENT_VIEW,
no_view = ViewVisibility.NO_VIEW;
/**
* the map that saves when and where a feature with a specific name is shown in the palette
*/
public static Map<String, FeaturePaletteDescriptor> features = createFeatureCategoryMap();
/**
* creates the map that saves when and where a feature with a specific name is shown in the palette
* using the following steps:
* <p>
* Step 1: features shown in none of the categories<br>
* Step 2: features shown in the category "Entities"<br>
* Step 3: features shown in the category "Properties"<br>
* Step 4: features shown in the category "Relations"<br>
* Step 5: features shown in the category "Constraints"<br>
* @return
*/
private static Map<String, FeaturePaletteDescriptor> createFeatureCategoryMap() {
features = new HashMap<String, FeaturePaletteDescriptor>();
//Step 1
features.put(ATTRIBUTE_OPERATION_COMMON_FEATURE_NAME, new FeaturePaletteDescriptor(none, no_view));
features.put(MODEL_FEATURE_NAME, new FeaturePaletteDescriptor(none, no_view));
features.put(GROUP_OR_COMPARTMENT_TYPE_ELEMENT_FEATURE_NAME, new FeaturePaletteDescriptor(none, no_view));
//Step 2
features.put(COMPARTMENTTYPE_FEATURE_NAME, new FeaturePaletteDescriptor(entities, all));
features.put(NATURALTYPE_FEATURE_NAME, new FeaturePaletteDescriptor(entities, top));
features.put(DATATYPE_FEATURE_NAME, new FeaturePaletteDescriptor(entities, top));
features.put(GROUP_FEATURE_NAME, new FeaturePaletteDescriptor(entities, top));
features.put(ROLETYPE_FEATURE_NAME, new FeaturePaletteDescriptor(entities, compartment));
//Step 3
features.put(ATTRIBUTE_FEATURE_NAME, new FeaturePaletteDescriptor(properties, all));
features.put(OPERATION_FEATURE_NAME, new FeaturePaletteDescriptor(properties, all));
//Step 4
features.put(INHERITANCE_FEATURE_NAME, new FeaturePaletteDescriptor(relations, all));
features.put(RELATIONSHIP_FEATURE_NAME, new FeaturePaletteDescriptor(relations, compartment));
features.put(FULFILLMENT_FEATURE_NAME, new FeaturePaletteDescriptor(relations, all));
//Step 5
features.put(ROLEIMPLICATION_FEATURE_NAME, new FeaturePaletteDescriptor(constraints, compartment));
features.put(ROLEEQUIVALENCE_FEATURE_NAME, new FeaturePaletteDescriptor(constraints, compartment));
features.put(ROLEPROHIBITION_FEATURE_NAME, new FeaturePaletteDescriptor(constraints, compartment));
features.put(ACYCLIC_FEATURE_NAME, new FeaturePaletteDescriptor(constraints, compartment));
features.put(CYCLIC_FEATURE_NAME, new FeaturePaletteDescriptor(constraints, compartment));
features.put(IRREFLEXIVE_FEATURE_NAME, new FeaturePaletteDescriptor(constraints, compartment));
features.put(REFLEXIVE_FEATURE_NAME, new FeaturePaletteDescriptor(constraints, compartment));
features.put(TOTAL_FEATURE_NAME, new FeaturePaletteDescriptor(constraints, compartment));
features.put(RELATIONSHIP_IMPLICATION_FEATURE_NAME, new FeaturePaletteDescriptor(constraints, compartment));
features.put(RELATIONSHIP_EXCLUSION_FEATURE_NAME, new FeaturePaletteDescriptor(constraints, compartment));
//features.put("Role Group", )
return features;
}
}
......@@ -4,6 +4,9 @@ import org.eclipse.graphiti.pattern.AbstractConnectionPattern;
import org.eclipse.graphiti.services.Graphiti;
import org.eclipse.graphiti.services.IGaService;
import org.eclipse.graphiti.services.IPeCreateService;
import org.framed.iorm.ui.literals.IdentifierLiterals;
import org.framed.iorm.ui.literals.NameLiterals;
import org.framed.iorm.ui.palette.FeaturePaletteDescriptor;
/**
* This class is an abstract super class for the graphiti connection patterns.
......@@ -13,6 +16,42 @@ import org.eclipse.graphiti.services.IPeCreateService;
*/
public abstract class FRaMEDConnectionPattern extends AbstractConnectionPattern {
/**
* the name of the feature
*/
protected String FEATURE_NAME;
/**
* the identifier for the icon of the create feature
*/
protected String ICON_IMG_ID;
protected FeaturePaletteDescriptor FPD;
/**
* get method for the features name
*
* @return the name of the feature
*/
@Override
public String getCreateName() {
return FEATURE_NAME;
}
/**
* get method for the identifier of the icon for the create feature
*
* @return the id of the icon
*/
@Override
public String getCreateImageId() {
return ICON_IMG_ID;
}
public FeaturePaletteDescriptor getFeaturePaletteDescriptor() {
return FPD;
}
/**
* Class constructor
*/
......
......@@ -22,6 +22,9 @@ import org.framed.iorm.ui.graphitifeatures.EditFulfillmentFeature;
import org.framed.iorm.ui.literals.IdentifierLiterals;
import org.framed.iorm.ui.literals.LayoutLiterals;
import org.framed.iorm.ui.literals.NameLiterals;
import org.framed.iorm.ui.palette.FeaturePaletteDescriptor;
import org.framed.iorm.ui.palette.PaletteCategory;
import org.framed.iorm.ui.palette.ViewVisibility;
import org.framed.iorm.ui.util.ConnectionPatternUtil;
import org.framed.iorm.ui.util.GeneralUtil;
import org.framed.iorm.ui.util.PropertyUtil;
......@@ -42,7 +45,7 @@ public class FulfillmentPattern extends FRaMEDConnectionPattern {
/**
* the name of the feature gathered from {@link NameLiterals}
*/
private static final String FULFILLMENT_FEATURE_NAME = NameLiterals.FULFILLMENT_FEATURE_NAME;
private final String FULFILLMENT_FEATURE_NAME = NameLiterals.FULFILLMENT_FEATURE_NAME;
/**
* the name of the edit relationship feature gathered from {@link NameLiterals}
......@@ -53,13 +56,17 @@ public class FulfillmentPattern extends FRaMEDConnectionPattern {
* the identifier for the icon of the create feature gathered from
* {@link IdentifierLiterals}
*/
private static final String IMG_ID_FEATURE_FULFILLMENT = IdentifierLiterals.IMG_ID_FEATURE_FULFILLMENT;
private final String IMG_ID_FEATURE_FULFILLMENT = IdentifierLiterals.IMG_ID_FEATURE_FULFILLMENT;
private final FeaturePaletteDescriptor spec_FPD = new FeaturePaletteDescriptor(
PaletteCategory.RELATIONS_CATEGORY,
ViewVisibility.ALL_VIEWS);
/**
* the identifier for a diagram of a stepped in compartment view gathered from
* {@link IdentifierLiterals}
*/
private static final String DIAGRAM_KIND_COMPARTMENTTYPE_DIAGRAM = IdentifierLiterals.DIAGRAM_KIND_COMPARTMENTTYPE_DIAGRAM;
private final String DIAGRAM_KIND_COMPARTMENTTYPE_DIAGRAM = IdentifierLiterals.DIAGRAM_KIND_COMPARTMENTTYPE_DIAGRAM;
/**
* the value for the property shape id for the connection decorator of the
......@@ -86,6 +93,7 @@ public class FulfillmentPattern extends FRaMEDConnectionPattern {
*/
public FulfillmentPattern() {
super();
FPD = spec_FPD;
}
/**
......
......@@ -19,6 +19,9 @@ import org.framed.iorm.ui.editPolicy.EditPolicyService;
import org.framed.iorm.ui.literals.IdentifierLiterals;
import org.framed.iorm.ui.literals.LayoutLiterals;
import org.framed.iorm.ui.literals.NameLiterals;
import org.framed.iorm.ui.palette.FeaturePaletteDescriptor;
import org.framed.iorm.ui.palette.PaletteCategory;
import org.framed.iorm.ui.palette.ViewVisibility;
import org.framed.iorm.ui.util.ConnectionPatternUtil;
import org.framed.iorm.ui.util.PropertyUtil;
......@@ -43,6 +46,10 @@ public class InheritancePattern extends FRaMEDConnectionPattern {
*/
private static final String IMG_ID_FEATURE_INHERITANCE = IdentifierLiterals.IMG_ID_FEATURE_INHERITANCE;
private final FeaturePaletteDescriptor spec_FPD = new FeaturePaletteDescriptor(
PaletteCategory.RELATIONS_CATEGORY,
ViewVisibility.ALL_VIEWS);
/**
* the value for the property shape id for the connection decorator of the inheritance
*/
......@@ -65,6 +72,7 @@ public class InheritancePattern extends FRaMEDConnectionPattern {
*/
public InheritancePattern() {
super();
FPD = spec_FPD;
}
/**
......
......@@ -23,6 +23,9 @@ import org.framed.iorm.ui.graphitifeatures.EditRelationshipFeature;
import org.framed.iorm.ui.literals.IdentifierLiterals;
import org.framed.iorm.ui.literals.LayoutLiterals;
import org.framed.iorm.ui.literals.NameLiterals;
import org.framed.iorm.ui.palette.FeaturePaletteDescriptor;
import org.framed.iorm.ui.palette.PaletteCategory;
import org.framed.iorm.ui.palette.ViewVisibility;
import org.framed.iorm.ui.util.ConnectionPatternUtil;
import org.framed.iorm.ui.util.GeneralUtil;
import org.framed.iorm.ui.util.NameUtil;
......@@ -60,6 +63,10 @@ public class RelationshipPattern extends FRaMEDConnectionPattern {
*/
private final String IMG_ID_FEATURE_RELATIONSHIP = IdentifierLiterals.IMG_ID_FEATURE_RELATIONSHIP;
private final FeaturePaletteDescriptor spec_FPD = new FeaturePaletteDescriptor(
PaletteCategory.RELATIONS_CATEGORY,
ViewVisibility.COMPARTMENT_VIEW);
/**
* values for property shape id of the connection decorators of the relationship
*/
......@@ -84,6 +91,7 @@ public class RelationshipPattern extends FRaMEDConnectionPattern {
*/
public RelationshipPattern() {
super();
FPD = spec_FPD;
}
/**
......
......@@ -15,6 +15,9 @@ import org.framed.iorm.model.Type;
import org.framed.iorm.ui.editPolicy.EditPolicyService;
import org.framed.iorm.ui.literals.IdentifierLiterals;
import org.framed.iorm.ui.literals.LayoutLiterals;
import org.framed.iorm.ui.palette.FeaturePaletteDescriptor;
import org.framed.iorm.ui.palette.PaletteCategory;
import org.framed.iorm.ui.palette.ViewVisibility;
import org.framed.iorm.ui.pattern.connections.FRaMEDConnectionPattern;
import org.framed.iorm.ui.util.ConnectionPatternUtil;
......@@ -26,6 +29,10 @@ import org.framed.iorm.ui.util.ConnectionPatternUtil;
*/
public abstract class AbstractInterRelationshipConstraintPattern extends FRaMEDConnectionPattern {
private final FeaturePaletteDescriptor spec_FPD = new FeaturePaletteDescriptor(
PaletteCategory.RELATIONS_CATEGORY,
ViewVisibility.COMPARTMENT_VIEW);
/**
* values for the property shape id gathered from {@link IdentifierLiterals}
*/
......@@ -49,6 +56,7 @@ public abstract class AbstractInterRelationshipConstraintPattern extends FRaMEDC
*/
public AbstractInterRelationshipConstraintPattern() {
super();
FPD = spec_FPD;
}
//add feature
......
......@@ -12,6 +12,9 @@ import org.framed.iorm.model.Type;
import org.framed.iorm.ui.editPolicy.EditPolicyService;
import org.framed.iorm.ui.literals.IdentifierLiterals;
import org.framed.iorm.ui.literals.LayoutLiterals;
import org.framed.iorm.ui.palette.FeaturePaletteDescriptor;
import org.framed.iorm.ui.palette.PaletteCategory;
import org.framed.iorm.ui.palette.ViewVisibility;
import org.framed.iorm.ui.pattern.connections.FRaMEDConnectionPattern;
import org.framed.iorm.ui.util.ConnectionPatternUtil;
......@@ -23,6 +26,10 @@ import org.framed.iorm.ui.util.ConnectionPatternUtil;
*/
public abstract class AbstractRoleConstraintPattern extends FRaMEDConnectionPattern{
private final FeaturePaletteDescriptor spec_FPD = new FeaturePaletteDescriptor(
PaletteCategory.RELATIONS_CATEGORY,
ViewVisibility.COMPARTMENT_VIEW);
/**
* value for the property shape id for the decorator of role constraints gathered form {@link IdentifierLiterals}
*/
......@@ -33,6 +40,7 @@ public abstract class AbstractRoleConstraintPattern extends FRaMEDConnectionPatt
*/
public AbstractRoleConstraintPattern() {
super();
FPD = spec_FPD;
}
/**
......
......@@ -22,16 +22,17 @@ import org.eclipse.graphiti.palette.IPaletteCompartmentEntry;
import org.eclipse.graphiti.palette.impl.ConnectionCreationToolEntry;
import org.eclipse.graphiti.palette.impl.ObjectCreationToolEntry;
import org.eclipse.graphiti.palette.impl.PaletteCompartmentEntry;
import org.eclipse.graphiti.pattern.IConnectionPattern;
import org.eclipse.graphiti.pattern.IPattern;
import org.eclipse.graphiti.tb.DefaultToolBehaviorProvider;
import org.eclipse.graphiti.tb.IContextButtonPadData;
import org.eclipse.graphiti.tb.IContextMenuEntry;
import org.framed.iorm.ui.literals.IdentifierLiterals;
import org.framed.iorm.ui.literals.NameLiterals;
import org.framed.iorm.ui.palette.FeatureManager;
import org.framed.iorm.ui.palette.FeaturePaletteDescriptor;
import org.framed.iorm.ui.palette.PaletteView;
import org.framed.iorm.ui.palette.ViewVisibility;
import org.framed.iorm.ui.pattern.connections.FRaMEDConnectionPattern;
import org.framed.iorm.ui.pattern.shapes.FRaMEDShapePattern;
import org.framed.iorm.ui.util.DiagramUtil;
import org.framed.iorm.ui.util.GeneralUtil;
......@@ -264,8 +265,9 @@ public class ToolBehaviorProvider extends DefaultToolBehaviorProvider{
addShapeFeature((FRaMEDShapePattern) iPattern);
}
//Step 3
for(ICreateConnectionFeature feature : getFeatureProvider().getCreateConnectionFeatures()) {
addConnectionFeature(feature);
for(IConnectionPattern iConPattern : ((FeatureProvider) getFeatureProvider()).getConnectionPatterns()) {
if(iConPattern instanceof FRaMEDConnectionPattern)
addConnectionFeature((FRaMEDConnectionPattern) iConPattern);
}
//Step 4
pallete.add(entityCategory);
......@@ -319,18 +321,19 @@ public class ToolBehaviorProvider extends DefaultToolBehaviorProvider{
* feature.
* @param feature the feature to probably add to the palette
*/
private void addConnectionFeature(ICreateConnectionFeature feature) {
FeaturePaletteDescriptor fpd = FeatureManager.features.get(feature.getCreateName());
if(fpd == null) throw new FeatureHasNoPaletteDescriptorException(feature.getCreateName());
private void addConnectionFeature(FRaMEDConnectionPattern iConPattern) {
FeaturePaletteDescriptor fpd = iConPattern.getFeaturePaletteDescriptor();
if(fpd == null) throw new FeatureHasNoPaletteDescriptorException(iConPattern.getCreateName());
if((fpd.viewVisibility == ViewVisibility.ALL_VIEWS) ||
(paletteView == PaletteView.TOPLEVEL_VIEW &&
fpd.viewVisibility == ViewVisibility.TOPLEVEL_VIEW) ||
(paletteView == PaletteView.COMPARTMENT_VIEW &&
fpd.viewVisibility == ViewVisibility.COMPARTMENT_VIEW)) {
ConnectionCreationToolEntry connectionCreationToolEntry =
new ConnectionCreationToolEntry(feature.getCreateName(),
feature.getCreateDescription(), feature.getCreateImageId(),
feature.getCreateLargeImageId());
new ConnectionCreationToolEntry(iConPattern.getCreateName(),
iConPattern.getCreateDescription(), iConPattern.getCreateImageId(),
iConPattern.getCreateLargeImageId());
ICreateConnectionFeature feature = GeneralUtil.findCreateConnectionFeatureByName(getFeatureProvider().getCreateConnectionFeatures(), iConPattern.getCreateName());
connectionCreationToolEntry.addCreateConnectionFeature(feature);
switch(fpd.paletteCategory) {
case ENTITIES_CATEGORY:
......
......@@ -9,6 +9,7 @@ import org.eclipse.core.runtime.Path;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.graphiti.features.ICreateConnectionFeature;
import org.eclipse.graphiti.features.IFeature;
import org.eclipse.graphiti.features.IMappingProvider; //*import for javadoc link
import org.eclipse.graphiti.features.context.ICreateContext;
......@@ -17,6 +18,7 @@ import org.eclipse.graphiti.mm.pictograms.PictogramElement;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.PlatformUI;
import org.framed.iorm.model.Type;
import org.framed.iorm.ui.exceptions.NoFeatureForPatternFound;
import org.framed.iorm.ui.literals.LayoutLiterals;
import org.framed.iorm.ui.multipage.MultipageEditor;
......@@ -152,19 +154,29 @@ public class GeneralUtil {
}
/**
* finds the a feature by its name in an array of features
* finds the a feature by its name in an array of general create features
* @param array the array with features to search in
* @param featureName the name of the feature to find
* @return the found feature or null if it was not found
* @return the found feature or throw exceptions {@link NoFeatureForPatternFound} if it was not found
*/
public static IFeature findFeatureByName(IFeature[] array, String featureName) {
for(int i = 0; i<array.length; i++) {
if(array[i].getName().equals(featureName))
return array[i];
}
return null;
throw new NoFeatureForPatternFound(featureName);
}
//TODO
public static ICreateConnectionFeature findCreateConnectionFeatureByName(ICreateConnectionFeature[] array, String featureName) {
for(int i = 0; i<array.length; i++) {
if(array[i].getCreateName().equals(featureName))
return array[i];
}
throw new NoFeatureForPatternFound(featureName);
}
/**
* gets the {@link IFile} of the CROM for a diagram
* @param diagram_resource the resource of the diagram to get the CROM file for
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment