[isidorus-cvs] r1023 - trunk/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base
lgiessmann at common-lisp.net
lgiessmann at common-lisp.net
Wed Oct 26 11:49:33 UTC 2011
Author: lgiessmann
Date: Wed Oct 26 04:49:24 2011
New Revision: 1023
Log:
gdl-frontend: Widgets: implemented the tmcl:variant-name-constraint semantics for generating content entered in GdlVisibleObject
Modified:
trunk/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlVisibleObject.java
Modified: trunk/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlVisibleObject.java
==============================================================================
--- trunk/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlVisibleObject.java Wed Oct 26 03:06:05 2011 (r1022)
+++ trunk/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlVisibleObject.java Wed Oct 26 04:49:24 2011 (r1023)
@@ -2682,37 +2682,27 @@
// handles the getContent call for subject identifiers and subject locators
private void getVariantNameContent(ArrayList<Pair<Object, TopicMapsTypes>> contents, boolean validate, Topic carrier, int selectedValueIndex) throws InvalidGdlSchemaException, InvalidContentException, ExecutionException{
- // TODO: implement
-
- /*JsArray<Locator> identifiers = null;
-
- ArrayList<Locator> filteredIdentifiers = null;
- boolean isPsiConstraint = false;
- if(TmHelper.isInstanceOf(this.getConstraint(), PSIs.TMCL.tmclSubjectIdentifierConstraint)){
- isPsiConstraint = true;
- identifiers = carrier.getSubjectIdentifiers();
- filteredIdentifiers = this.filterLocators(TmHelper.getRegExp(this.getConstraint()), identifiers);
- } else if(TmHelper.isInstanceOf(this.getConstraint(), PSIs.TMCL.tmclSubjectLocatorConstraint)){
- identifiers = carrier.getSubjectLocators();
- filteredIdentifiers = this.filterLocators(TmHelper.getRegExp(this.getConstraint()), identifiers);
- } else {
- throw new ExecutionException("Only the constraints " + PSIs.TMCL.tmclSubjectIdentifierConstraint + " and " + PSIs.TMCL.tmclSubjectLocatorConstraint + " are supported by the function getTopicIdentifierContent");
+ if(!(this.receivedData instanceof Topic)) throw new ExecutionException("the constraint " + TmHelper.getAnyIdOfTopic(this.getConstraint()) + " must be bound to a Topic, but is: " + receivedData.getClass());
+
+ ArrayList<Variant> variants = TmHelper.getVariantsForConstraint((Topic)this.receivedData, this.getConstraint());
+
+ Variant changedVariant = null;
+ if(validate) this.validateLiteralValue(this.getSelectedValues().get(selectedValueIndex));
+
+ if(variants.size() > selectedValueIndex){
+ changedVariant = variants.get(selectedValueIndex);
+ changedVariant.setValue(this.getSelectedValues().get(selectedValueIndex));
+ }else {
+ Topic nameType = TmHelper.getConstrainedStatement(this.getConstraint());
+ JsArray<Name> names = carrier.getNames(nameType);
+ Name owner = names.get(0);
+ Topic scope = TmHelper.getConstrainedScopeTopic(this.getConstraint());
+ @SuppressWarnings("unchecked")
+ JsArray<Topic> scopes = (JsArray<Topic>) JsArray.createArray();
+ scopes.push(scope);
+ changedVariant = owner.createVariant(this.getSelectedValues().get(selectedValueIndex), scopes);
}
-
- Locator changedIdentifier = null;
- if(validate) this.validateLiteralValue(this.getSelectedValues().get(selectedValueIndex));
-
- if(filteredIdentifiers.size() > selectedValueIndex){
- changedIdentifier = filteredIdentifiers.get(selectedValueIndex);
- if(isPsiConstraint) carrier.removeSubjectIdentifier(changedIdentifier);
- else carrier.removeSubjectLocator(changedIdentifier);
- }
-
- changedIdentifier = carrier.getTopicMap().createLocator(this.getSelectedValues().get(selectedValueIndex));
- if(isPsiConstraint) carrier.addSubjectIdentifier(changedIdentifier);
- else carrier.addSubjectLocator(changedIdentifier);
- contents.add(new Pair<Object, TopicMapsTypes>(changedIdentifier, TopicMapsTypes.Locator));
- */
+ contents.add(new Pair<Object, TopicMapsTypes>(changedVariant, TopicMapsTypes.Variant));
}
More information about the Isidorus-cvs
mailing list