From: Benjamin B. <bg...@us...> - 2005-08-10 17:26:08
|
Update of /cvsroot/sblim/ecute/Plugin/com/ibm/ecute/rsa/core/internal/properties In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3509/Plugin/com/ibm/ecute/rsa/core/internal/properties Modified Files: QualifiersPropertySection.java CheckAndRepair.java FlavorsHelper.java Log Message: Complete check and repair Index: FlavorsHelper.java =================================================================== RCS file: /cvsroot/sblim/ecute/Plugin/com/ibm/ecute/rsa/core/internal/properties/FlavorsHelper.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- FlavorsHelper.java 10 Aug 2005 07:19:39 -0000 1.9 +++ FlavorsHelper.java 10 Aug 2005 17:26:00 -0000 1.10 @@ -432,7 +432,7 @@ return null; } - private static boolean disableOverrideSetFirstTime(NamedElement element, Qualifier qualifier){ + public static boolean disableOverrideSetFirstTime(NamedElement element, Qualifier qualifier){ boolean isSetFirstTime = true; String qualifierValue = null; @@ -1171,7 +1171,7 @@ if(element instanceof Class){ for(int j = 0; j < parents.size(); j++){ - String qualValue = getQualifiersStereotypeQualifer((Class)parents.get(j), qualifierName); + String qualValue = getQualifiersStereotype_QualiferValue((Class)parents.get(j), qualifierName); if(qualValue != null){ return(new EffectiveInheritedValue(qualValue, (Class)parents.get(j))); } @@ -1187,6 +1187,7 @@ for(int i = 0; i < attributeList.size(); i++){ if(((Property)attributeList.get(i)).getName().equalsIgnoreCase(property.getName())){ attribute = (Property)attributeList.get(i); + break; } } if(propertyIsOwnedEnd(property)){ @@ -1194,13 +1195,14 @@ for(int i = 0; i < endList.size(); i++){ if(((Property)endList.get(i)).getName().equalsIgnoreCase(property.getName())){ attribute = (Property)endList.get(i); + break; } } } if(attribute != null){ - String qualValue = getQualifiersStereotypeQualifer(attribute, qualifierName); + String qualValue = getQualifiersStereotype_QualiferValue(attribute, qualifierName); if(qualValue != null){ return(new EffectiveInheritedValue(qualValue, (Class)parents.get(j))); } @@ -1222,12 +1224,13 @@ for(int i = 0; i < operationsList.size(); i++){ if(((Operation)operationsList.get(i)).getName().equalsIgnoreCase(operation.getName())){ method = (Operation)operationsList.get(i); + break; } } if(method != null){ - String qualValue = getQualifiersStereotypeQualifer(method, qualifierName); + String qualValue = getQualifiersStereotype_QualiferValue(method, qualifierName); if(qualValue != null){ return(new EffectiveInheritedValue(qualValue, (Class)parents.get(j))); } @@ -1257,7 +1260,9 @@ List parameterList = method.getOwnedParameters(); for(int k = 0; k < parameterList.size(); k++){ if(((Parameter)parameterList.get(k)).getName().equalsIgnoreCase(parameter.getName())){ - param = (Parameter)parameterList.get(k); + param = (Parameter)parameterList.get(k); + i = operationsList.size(); + break; } } } @@ -1265,7 +1270,7 @@ if(param != null){ - String qualValue = getQualifiersStereotypeQualifer(param, qualifierName); + String qualValue = getQualifiersStereotype_QualiferValue(param, qualifierName); if(qualValue != null){ return(new EffectiveInheritedValue(qualValue, (Class)parents.get(j))); } @@ -1332,7 +1337,11 @@ if(effectiveInheritedValue != null){ return effectiveInheritedValue.getValue(); } else { - return qualifier.defaultValue; + if(qualifier.defaultValue == null){ + return "null"; + } else { + return qualifier.defaultValue; + } } } @@ -1627,7 +1636,7 @@ return parents; } - private static String getQualifiersStereotypeQualifer(NamedElement element, String qualifierName){ + private static String getQualifiersStereotype_QualiferValue(NamedElement element, String qualifierName){ String qualifierValue = null; Stereotype cimStereotype = element.getAppliedStereotype("CIM::Qualifiers"); @@ -1905,6 +1914,18 @@ return returnList; } + public ArrayList getApplicable_NonNative_ToSubclass_Qualifiers(NamedElement element){ + ArrayList list = getApplicableQualifiers(element); + ArrayList returnList = new ArrayList(); + for(int i = 0; i < list.size(); i++){ + Qualifier qualifier = (Qualifier)list.get(i); + if(!isNativeMappedQualifier(qualifier) && !qualifier.RestrictedFlavor){ + returnList.add(qualifier); + } + } + return returnList; + } + public void mapQualifierToModel(Element element, String qualifierName, String newValue){ // AGGREGATION, COMPOSITION Index: CheckAndRepair.java =================================================================== RCS file: /cvsroot/sblim/ecute/Plugin/com/ibm/ecute/rsa/core/internal/properties/CheckAndRepair.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- CheckAndRepair.java 10 Aug 2005 07:19:39 -0000 1.4 +++ CheckAndRepair.java 10 Aug 2005 17:26:00 -0000 1.5 @@ -54,27 +54,63 @@ } public void checkAll(ProgressLogDialog frame){ + frame.setNumberOfTask(1); + frame.setTitle("Checking model"); + checkDisableOverrideQualifiers(frame); + checkAssociationEndNames(frame); + + frame.addLine2Log("***************************************************************************"); + frame.addLine2Log(" Model check finished"); + frame.addLine2Log("***************************************************************************"); + + frame.allTasksDone(); } - public void checkAndRepairAll(ProgressLogDialog frame){ + public boolean checkAndRepairAll(ProgressLogDialog frame, boolean export){ + frame.setNumberOfTask(1); + frame.setTitle("Checking and repairing model"); + applyAllNativeInheritedValues(frame); checkAndRepairDisableOverrideQualifiers(frame); + repairDuplicateNonNativeQualifierValues(frame); + boolean cont = checkAssociationEndNames(frame); + + frame.addLine2Log("***************************************************************************"); + frame.addLine2Log(" Model check and repair finished"); + frame.addLine2Log("***************************************************************************"); + frame.addLine2Log(""); + + frame.allTasksDone(); + + if(export && cont){ + return true; + } + return false; } public void applyAllNativeInheritedValues(ProgressLogDialog frame){ frame.addLine2Log("*******************************************************"); - frame.addLine2Log("Propagating all native inherited values"); + frame.addLine2Log(" Propagating all native inherited values"); frame.addLine2Log("--------------------------------------------------"); frame.addLine2Log(""); ArrayList orderedModelClasses = getOrderedModelClasses(); + + frame.setSubTask("Propagating native inherited values"); + frame.setTaskSize(orderedModelClasses.size()); + for(int i = 0; i < orderedModelClasses.size(); i++){ flavorsHelper.applyNativeInheritedValues((NamedElement)orderedModelClasses.get(i), true); + try { + frame.increaseTaskProgress(); + } catch (Exception e) { + e.printStackTrace(); + } } - frame.addLine2Log("--> complete"); + frame.addLine2Log("--> Propagating native inherited values complete"); frame.addLine2Log(""); } @@ -82,7 +118,7 @@ private void checkDisableOverrideQualifiers(ProgressLogDialog frame){ frame.addLine2Log("***************************************************************************"); - frame.addLine2Log("Checking ToSubclass DisableOverride qualifiers"); + frame.addLine2Log(" Checking ToSubclass DisableOverride qualifiers"); frame.addLine2Log("---------------------------------------------------------"); // get all model base classes @@ -103,6 +139,10 @@ } } } + + frame.setSubTask("Checking ToSubclass DisableOverride qualifiers"); + int taskSize = modelBaseClasses.size() + modelBaseAssociationClasses.size() + 4 * orderedModelClasses.size(); + frame.setTaskSize(taskSize); // check classes checkDisableOverrideClasses(frame, modelBaseClasses, orderedModelClasses, false); @@ -123,18 +163,18 @@ checkDisableOverrideParameters(frame, orderedModelClasses, false); frame.addLine2Log(""); - frame.addLine2Log("--> DisableOverride check complete"); + frame.addLine2Log("--> Checking ToSubclass DisableOverride qualifiers complete"); frame.addLine2Log(""); - frame.addLine2Log("***************************************************************************"); + //frame.addLine2Log("***************************************************************************"); } private void checkAndRepairDisableOverrideQualifiers(ProgressLogDialog frame){ frame.addLine2Log("***************************************************************************"); - frame.addLine2Log("Repairing ToSubclass DisableOverride qualifiers"); + frame.addLine2Log(" Repairing ToSubclass DisableOverride qualifiers"); frame.addLine2Log("---------------------------------------------------------"); - + // get all model base classes ArrayList orderedModelClasses = getOrderedModelClasses(); ArrayList modelBaseClasses = new ArrayList(); @@ -153,7 +193,12 @@ } } } - + + frame.setSubTask("Repairing ToSubclass DisableOverride qualifiers"); + int taskSize = modelBaseClasses.size() + modelBaseAssociationClasses.size() + 4 * orderedModelClasses.size(); + frame.setTaskSize(taskSize); + + // check classes checkDisableOverrideClasses(frame, modelBaseClasses, orderedModelClasses, true); @@ -175,7 +220,7 @@ frame.addLine2Log(""); frame.addLine2Log("--> DisableOverride repair complete"); frame.addLine2Log(""); - frame.addLine2Log("***************************************************************************"); + //frame.addLine2Log("***************************************************************************"); } private ArrayList getOrderedModelClasses(){ @@ -234,6 +279,20 @@ return classes; } + private ArrayList getAllModelChildClasses(){ + ArrayList modelChildClasses = new ArrayList(); + ArrayList modelClasses = getAllModelClasses(); + + for(int i = 0; i < modelClasses.size(); i++){ + // add class to model child classes if the class has no parents + if(((Class)modelClasses.get(i)).getGenerals().size() != 0){ + modelChildClasses.add(modelClasses.get(i)); + } + } + + return modelChildClasses; + } + public ArrayList getAllChildClasses(Class class_){ ArrayList childClasses = new ArrayList(); @@ -486,6 +545,12 @@ } } } + + try { + frame.increaseTaskProgress(); + } catch (Exception e) { + e.printStackTrace(); + } } if(!classErrors){ @@ -596,6 +661,12 @@ } } } + + try { + frame.increaseTaskProgress(); + } catch (Exception e) { + e.printStackTrace(); + } } if(!classErrors){ @@ -723,6 +794,12 @@ } } } + + try { + frame.increaseTaskProgress(); + } catch (Exception e) { + e.printStackTrace(); + } } if(!referenceErrors){ @@ -849,6 +926,12 @@ } } } + + try { + frame.increaseTaskProgress(); + } catch (Exception e) { + e.printStackTrace(); + } } if(!propertyErrors){ @@ -975,6 +1058,12 @@ } } } + + try { + frame.increaseTaskProgress(); + } catch (Exception e) { + e.printStackTrace(); + } } if(!methodErrors){ @@ -1108,6 +1197,12 @@ } } } + + try { + frame.increaseTaskProgress(); + } catch (Exception e) { + e.printStackTrace(); + } } if(!parameterErrors){ @@ -1147,28 +1242,288 @@ return false; } - private void removeNonNativeQualifierValue(NamedElement element, String qualifierName){ + private boolean checkAssociationEndNames(ProgressLogDialog frame){ - Stereotype cimStereotype = element.getAppliedStereotype("CIM::Qualifiers"); - int stereotypePropertyIndex = ((List) element.getValue(cimStereotype, "QualifierName")).size(); - List qualifierNames = (List) element.getValue(cimStereotype, "QualifierName"); - List qualifierValues = (List) element.getValue(cimStereotype, "QualifierValue"); - List names = new ArrayList(); - List values = new ArrayList(); - names.addAll(qualifierNames); - values.addAll(qualifierValues); - qualifierNames.clear(); - qualifierValues.clear(); + frame.addLine2Log("***************************************************************************"); + frame.addLine2Log(" Checking association end names"); + frame.addLine2Log("---------------------------------------------------------"); + + boolean associationEndError = false; - for(int i = 0; i < stereotypePropertyIndex; i++){ - String name = (String)names.get(i); - String value = (String)values.get(i); + // get all association classes + ArrayList modelClasses = getOrderedModelClasses(); + ArrayList modelAssociationClasses = new ArrayList(); + for(int i = 0; i < modelClasses.size(); i++){ + if(modelClasses.get(i) instanceof AssociationClass){ + modelAssociationClasses.add(modelClasses.get(i)); + } + } + + frame.setSubTask("Checking association end names"); + frame.setTaskSize(modelAssociationClasses.size()); + + for(int i = 0; i < modelAssociationClasses.size(); i++){ + AssociationClass aClass = (AssociationClass)modelAssociationClasses.get(i); + List associationEnds = aClass.getOwnedEnds(); + for(int j = 0; j < associationEnds.size(); j++){ + Property thisEnd = (Property)associationEnds.get(j); + if(thisEnd.getName() == null || thisEnd.getName().equalsIgnoreCase("")){ + frame.addLine2Log(""); + frame.addLine2Log("Error: The association end of association class " + ((NamedElement)thisEnd.getOwner().getOwner().getOwner()).getName() + "::" + + ((NamedElement)thisEnd.getOwner().getOwner()).getName() + "::" + + ((NamedElement)thisEnd.getOwner()).getName() + " which associates class " + thisEnd.getType().getName() + " is not named."); + + associationEndError = true; + } + } + try { + frame.increaseTaskProgress(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + frame.addLine2Log(""); + + if(associationEndError){ + frame.updateImage(frame.getErrorImage()); + return false; + } else { + return true; + } + } + + public void repairDuplicateNonNativeQualifierValues(ProgressLogDialog frame){ + + frame.addLine2Log("*******************************************************"); + frame.addLine2Log(" Repairing all non-native inherited values"); + frame.addLine2Log("--------------------------------------------------"); + frame.addLine2Log(""); + + ArrayList modelChildClasses = getAllModelChildClasses(); + + frame.setSubTask("Repairing all non-native inherited values"); + frame.setTaskSize(modelChildClasses.size()); + + List classProperties; + List classMethods; + List methodParameters; + List associationEnds; + + ArrayList classQualifiers = null; + ArrayList propertyQualifiers = null; + ArrayList methodQualifiers = null; + ArrayList parameterQualifiers = null; + ArrayList associationEndQualifiers = null; + + + + for(int i = 0; i < modelChildClasses.size(); i++){ + // get the class + Class thisClass = (Class)modelChildClasses.get(i); + // get the properties, methods and association ends (if applicable) of the class + classProperties = thisClass.getOwnedAttributes(); + classMethods = thisClass.getOwnedOperations(); + if(thisClass instanceof AssociationClass){ + associationEnds = ((AssociationClass)thisClass).getOwnedEnds(); + } else { + associationEnds = null; + } - if(!qualifierName.equalsIgnoreCase(name)){ - qualifierNames.add(name); - qualifierValues.add(value); + // check non-native class qualifiers + if(classQualifiers == null){ + classQualifiers = flavorsHelper.getApplicable_NonNative_ToSubclass_Qualifiers(thisClass); + } + for(int j = 0; j < classQualifiers.size(); j++){ + Qualifier qualifier = (Qualifier)classQualifiers.get(j); + if(FlavorsHelper.qualifierValue(thisClass, qualifier) != null && + FlavorsHelper.effectiveInheritedValue(thisClass, qualifier.name) != null && + FlavorsHelper.qualifierValue(thisClass, qualifier).equalsIgnoreCase(FlavorsHelper.effectiveInheritedValue(thisClass, qualifier.name).getValue())){ + + removeNonNativeQualifierValue(thisClass, qualifier.name); + } + // special case for disable override qualifiers if they were set before + if(qualifier.DissableOverrideFlavor && !FlavorsHelper.disableOverrideSetFirstTime(thisClass, qualifier)){ + + removeNonNativeQualifierValue(thisClass, qualifier.name); + } + } + + // check non-native property qualifiers of the current class + if(classProperties != null && classProperties.size() > 0){ + if(propertyQualifiers == null){ + propertyQualifiers = flavorsHelper.getApplicable_NonNative_ToSubclass_Qualifiers((Property)classProperties.get(0)); + } + for(int j = 0; j < classProperties.size(); j++){ + Property thisProperty = (Property)classProperties.get(j); + // remove override qualifier if there's no element which can be overwritten + if(FlavorsHelper.override(thisProperty) && FlavorsHelper.canOverride(thisProperty) == null){ + removeNonNativeQualifierValue(thisProperty, "Override"); + } + + // repair the qualifiers only if the override qualifier is set and if a property exists that can be overwritten + if(FlavorsHelper.override(thisProperty) && FlavorsHelper.canOverride(thisProperty) != null){ + for(int k = 0; k < propertyQualifiers.size(); k++){ + Qualifier qualifier = (Qualifier)propertyQualifiers.get(k); + if(FlavorsHelper.qualifierValue(thisProperty, qualifier) != null && + FlavorsHelper.effectiveInheritedValue(thisProperty, qualifier.name) != null && + FlavorsHelper.qualifierValue(thisProperty, qualifier).equalsIgnoreCase(FlavorsHelper.effectiveInheritedValue(thisProperty, qualifier.name).getValue())){ + + removeNonNativeQualifierValue(thisProperty, qualifier.name); + } + // special case for disable override qualifiers if they were set before + if(qualifier.DissableOverrideFlavor && !FlavorsHelper.disableOverrideSetFirstTime(thisProperty, qualifier)){ + + removeNonNativeQualifierValue(thisProperty, qualifier.name); + } + } + } + } + } + + // check non-native method and parameter qualifiers of the current class + if(classMethods != null && classMethods.size() > 0){ + if(methodQualifiers == null){ + methodQualifiers = flavorsHelper.getApplicable_NonNative_ToSubclass_Qualifiers((Operation)classMethods.get(0)); + } + for(int j = 0; j < classMethods.size(); j++){ + Operation thisMethod = (Operation)classMethods.get(j); + methodParameters = null; + + // remove override qualifier if there's no element which can be overwritten + if(FlavorsHelper.override(thisMethod) && FlavorsHelper.canOverride(thisMethod) == null){ + removeNonNativeQualifierValue(thisMethod, "Override"); + } + + // repair the qualifiers only if the override qualifier is set and if a method exists that can be overwritten + if(FlavorsHelper.override(thisMethod) && FlavorsHelper.canOverride(thisMethod) != null){ + for(int k = 0; k < methodQualifiers.size(); k++){ + Qualifier qualifier = (Qualifier)methodQualifiers.get(k); + if(FlavorsHelper.qualifierValue(thisMethod, qualifier) != null && + FlavorsHelper.effectiveInheritedValue(thisMethod, qualifier.name) != null && + FlavorsHelper.qualifierValue(thisMethod, qualifier).equalsIgnoreCase(FlavorsHelper.effectiveInheritedValue(thisMethod, qualifier.name).getValue())){ + + removeNonNativeQualifierValue(thisMethod, qualifier.name); + } + // special case for disable override qualifiers if they were set before + if(qualifier.DissableOverrideFlavor && !FlavorsHelper.disableOverrideSetFirstTime(thisMethod, qualifier)){ + + removeNonNativeQualifierValue(thisMethod, qualifier.name); + } + } + // check the method parameters + methodParameters = thisMethod.getOwnedParameters(); + if(methodParameters != null && methodParameters.size() > 0){ + if(parameterQualifiers == null){ + parameterQualifiers = flavorsHelper.getApplicable_NonNative_ToSubclass_Qualifiers((Parameter)methodParameters.get(0)); + } + for(int m = 0; m < methodParameters.size(); m++){ + Parameter thisParameter = (Parameter)methodParameters.get(m); + for(int n = 0; n < parameterQualifiers.size(); n++){ + Qualifier qualifier = (Qualifier)parameterQualifiers.get(n); + if(FlavorsHelper.qualifierValue(thisParameter, qualifier) != null && + FlavorsHelper.effectiveInheritedValue(thisParameter, qualifier.name) != null && + FlavorsHelper.qualifierValue(thisParameter, qualifier).equalsIgnoreCase(FlavorsHelper.effectiveInheritedValue(thisParameter, qualifier.name).getValue())){ + + removeNonNativeQualifierValue(thisParameter, qualifier.name); + } + // special case for disable override qualifiers if they were set before + if(qualifier.DissableOverrideFlavor && !FlavorsHelper.disableOverrideSetFirstTime(thisParameter, qualifier)){ + + removeNonNativeQualifierValue(thisParameter, qualifier.name); + } + } + } + } + } + } + } + + // check non-native association end qualifiers of the current class + if(associationEnds != null && associationEnds.size() > 0){ + + if(associationEndQualifiers == null){ + associationEndQualifiers = flavorsHelper.getApplicable_NonNative_ToSubclass_Qualifiers((Property)associationEnds.get(0)); + } + for(int j = 0; j < associationEnds.size(); j++){ + Property thisProperty = (Property)associationEnds.get(j); + + // remove override qualifier if there's no element which can be overwritten + if(FlavorsHelper.override(thisProperty) && FlavorsHelper.canOverride(thisProperty) == null){ + removeNonNativeQualifierValue(thisProperty, "Override"); + } + + // repair the qualifiers only if the override qualifier is set and if a property exists that can be overwritten + if(FlavorsHelper.override(thisProperty) && FlavorsHelper.canOverride(thisProperty) != null){ + for(int k = 0; k < associationEndQualifiers.size(); k++){ + Qualifier qualifier = (Qualifier)associationEndQualifiers.get(k); + if(FlavorsHelper.qualifierValue(thisProperty, qualifier) != null && + FlavorsHelper.effectiveInheritedValue(thisProperty, qualifier.name) != null && + FlavorsHelper.qualifierValue(thisProperty, qualifier).equalsIgnoreCase(FlavorsHelper.effectiveInheritedValue(thisProperty, qualifier.name).getValue())){ + + removeNonNativeQualifierValue(thisProperty, qualifier.name); + } + // special case for disable override qualifiers if they were set before + if(qualifier.DissableOverrideFlavor && !FlavorsHelper.disableOverrideSetFirstTime(thisProperty, qualifier)){ + + removeNonNativeQualifierValue(thisProperty, qualifier.name); + } + } + } + } + } + + try { + frame.increaseTaskProgress(); + } catch (Exception e) { + e.printStackTrace(); } } + + frame.addLine2Log("--> Repairing all non-native inherited values complete"); + frame.addLine2Log(""); + } + + private void removeNonNativeQualifierValue(final NamedElement element, final String qualifierName){ + + EditingDomain editingDomain = UMLModeler.getEditingDomain(); + + try { + + editingDomain.run(new ResourceSetModifyOperation("applyNativeInheritedValues") { + + protected void execute(IProgressMonitor monitor) throws InvocationTargetException, + InterruptedException { + + Stereotype cimStereotype = element.getAppliedStereotype("CIM::Qualifiers"); + int stereotypePropertyIndex = ((List) element.getValue(cimStereotype, "QualifierName")).size(); + List qualifierNames = (List) element.getValue(cimStereotype, "QualifierName"); + List qualifierValues = (List) element.getValue(cimStereotype, "QualifierValue"); + List names = new ArrayList(); + List values = new ArrayList(); + names.addAll(qualifierNames); + values.addAll(qualifierValues); + qualifierNames.clear(); + qualifierValues.clear(); + + for(int i = 0; i < stereotypePropertyIndex; i++){ + String name = (String)names.get(i); + String value = (String)values.get(i); + + if(!qualifierName.equalsIgnoreCase(name)){ + qualifierNames.add(name); + qualifierValues.add(value); + } + } + } + }, new NullProgressMonitor()); + } catch (InvocationTargetException e) { + e.printStackTrace(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + } public boolean isReference(NamedElement element){ Index: QualifiersPropertySection.java =================================================================== RCS file: /cvsroot/sblim/ecute/Plugin/com/ibm/ecute/rsa/core/internal/properties/QualifiersPropertySection.java,v retrieving revision 1.27 retrieving revision 1.28 diff -u -d -r1.27 -r1.28 --- QualifiersPropertySection.java 10 Aug 2005 07:19:39 -0000 1.27 +++ QualifiersPropertySection.java 10 Aug 2005 17:26:00 -0000 1.28 @@ -152,37 +152,9 @@ }); - //formdata inherited values buootn -// formdata = new FormData(); -// formdata.left = new FormAttachment(showAllButton,30); -// formdata.top = new FormAttachment(0,0); -// inheritedValueButton = getWidgetFactory().createButton(composite1, "Apply inherited values", 8); -// inheritedValueButton.setLayoutData(formdata); -// inheritedValueButton.addSelectionListener(new SelectionAdapter() { -// -// public void widgetSelected(SelectionEvent selectionevent) -// { -// final NamedElement element = (NamedElement)getEObject(); -//// FlavorsHelper flavorHelper = new FlavorsHelper(element.getModel()); -//// flavorHelper.applyNativeInheritedValues(element, true); -// -// try { -// UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); -// } catch (Exception e) { -// } -// Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); -// ProgressLogDialog frame = new ProgressLogDialog(shell); -// -// CheckAndRepair checker = new CheckAndRepair(element.getModel()); -// checker.applyAllNativeInheritedValues(frame); -// refresh(); -// } -// -// }); - //formdata inherited values button formdata = new FormData(); - formdata.left = new FormAttachment(showAllButton,30); + formdata.left = new FormAttachment(showAllButton,20); formdata.top = new FormAttachment(0,0); checkButton = getWidgetFactory().createButton(composite1, "Check model", 8); checkButton.setLayoutData(formdata); @@ -230,13 +202,57 @@ ProgressLogDialog frame = new ProgressLogDialog(shell); CheckAndRepair checkAndRepair = new CheckAndRepair(element.getModel()); - checkAndRepair.checkAndRepairAll(frame); - frame.allTasksDone(); + checkAndRepair.checkAndRepairAll(frame, false); + refresh(); } }); + //formdata inherited values button +// formdata = new FormData(); +// formdata.left = new FormAttachment(checkAndRepairButton,10); +// formdata.top = new FormAttachment(0,0); +// inheritedValueButton = getWidgetFactory().createButton(composite1, "Repair non native qualifiers", 8); +// inheritedValueButton.setLayoutData(formdata); +// inheritedValueButton.addSelectionListener(new SelectionAdapter() { +// +// public void widgetSelected(SelectionEvent selectionevent) +// { +// final NamedElement element = (NamedElement)getEObject(); +// EditingDomain editingDomain = UMLModeler.getEditingDomain(); +// try { +// UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); +// } catch (Exception e) { +// } +// Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); +// +// final ProgressLogDialog frame = new ProgressLogDialog(shell); +// final CheckAndRepair checker = new CheckAndRepair(element.getModel()); +// +// try { +// +// editingDomain.run(new ResourceSetModifyOperation("applyNativeInheritedValues") { +// +// protected void execute(IProgressMonitor monitor) throws InvocationTargetException, +// InterruptedException { +// checker.repairDuplicateNonNativeQualifierValues(frame); +// } +// }, new NullProgressMonitor()); +// } catch (InvocationTargetException e) { +// e.printStackTrace(); +// } catch (InterruptedException e) { +// e.printStackTrace(); +// } +// +// //checker.repairDuplicateNonNativeQualifierValues(frame); +// frame.allTasksDone(); +// refresh(); +// } +// +// }); + + //Table qualifiersTable = getWidgetFactory().createTable(composite1, SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.SINGLE| SWT.MouseDoubleClick); |