[Layers] Update and correct missing custom code
Change-Id: I8407a2d4324c28bf63802938652d5dd5fe52ab0d
Signed-off-by: Quentin Le Menez <quentin.lemenez@cea.fr>
diff --git a/layers/plugins/org.eclipse.papyrus.infra.gmfdiag.layers.model/src/org/eclipse/papyrus/internal/infra/gmfdiag/layers/model/layers/impl/custom/CustomStackedLayerOperatorImpl.java b/layers/plugins/org.eclipse.papyrus.infra.gmfdiag.layers.model/src/org/eclipse/papyrus/internal/infra/gmfdiag/layers/model/layers/impl/custom/CustomStackedLayerOperatorImpl.java
index 7ee5856..4ac4262 100755
--- a/layers/plugins/org.eclipse.papyrus.infra.gmfdiag.layers.model/src/org/eclipse/papyrus/internal/infra/gmfdiag/layers/model/layers/impl/custom/CustomStackedLayerOperatorImpl.java
+++ b/layers/plugins/org.eclipse.papyrus.infra.gmfdiag.layers.model/src/org/eclipse/papyrus/internal/infra/gmfdiag/layers/model/layers/impl/custom/CustomStackedLayerOperatorImpl.java
@@ -228,6 +228,26 @@
}
/**
+ * @see org.eclipse.papyrus.internal.infra.gmfdiag.layers.model.layers.impl.LayerOperatorImpl#isDescriptorSet()
+ *
+ * @return
+ */
+ @Override
+ public boolean isDescriptorSet() {
+ return getLayerOperatorDescriptor() != null;
+ }
+
+ /**
+ * @see org.eclipse.papyrus.internal.infra.gmfdiag.layers.model.layers.impl.LayerExpressionImpl#isLayerEnabledInternal()
+ *
+ * @return
+ */
+ @Override
+ public boolean isLayerEnabledInternal() {
+ return isLayerEnabled && isDescriptorSet();
+ }
+
+ /**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
diff --git a/layers/plugins/org.eclipse.papyrus.infra.gmfdiag.layers.model/src/org/eclipse/papyrus/internal/infra/gmfdiag/layers/model/layers/impl/custom/CustomTopLayerOperatorImpl.java b/layers/plugins/org.eclipse.papyrus.infra.gmfdiag.layers.model/src/org/eclipse/papyrus/internal/infra/gmfdiag/layers/model/layers/impl/custom/CustomTopLayerOperatorImpl.java
index 2ec8246..d3da420 100755
--- a/layers/plugins/org.eclipse.papyrus.infra.gmfdiag.layers.model/src/org/eclipse/papyrus/internal/infra/gmfdiag/layers/model/layers/impl/custom/CustomTopLayerOperatorImpl.java
+++ b/layers/plugins/org.eclipse.papyrus.infra.gmfdiag.layers.model/src/org/eclipse/papyrus/internal/infra/gmfdiag/layers/model/layers/impl/custom/CustomTopLayerOperatorImpl.java
@@ -13,13 +13,17 @@
package org.eclipse.papyrus.internal.infra.gmfdiag.layers.model.layers.impl.custom;
+import static org.eclipse.papyrus.internal.infra.gmfdiag.layers.model.Activator.log;
+
import java.util.ArrayList;
import java.util.List;
import org.eclipse.gmf.runtime.notation.View;
import org.eclipse.papyrus.internal.infra.gmfdiag.layers.model.LayersException;
+import org.eclipse.papyrus.internal.infra.gmfdiag.layers.model.NotFoundException;
import org.eclipse.papyrus.internal.infra.gmfdiag.layers.model.command.ComputePropertyValueCommand;
import org.eclipse.papyrus.internal.infra.gmfdiag.layers.model.layers.LayerExpression;
+import org.eclipse.papyrus.internal.infra.gmfdiag.layers.model.layers.LayerOperatorDescriptor;
import org.eclipse.papyrus.internal.infra.gmfdiag.layers.model.layers.LayersStack;
import org.eclipse.papyrus.internal.infra.gmfdiag.layers.model.layers.Property;
import org.eclipse.papyrus.internal.infra.gmfdiag.layers.model.layers.impl.TopLayerOperatorImpl;
@@ -74,7 +78,7 @@
// TODO Check if we can optimize
// the result list
- List<ComputePropertyValueCommand> resCmds = new ArrayList<ComputePropertyValueCommand>(properties.size());
+ List<ComputePropertyValueCommand> resCmds = new ArrayList<>(properties.size());
boolean isCmdFound = false;
for (Property property : properties) {
@@ -118,7 +122,7 @@
// TODO Check if we can optimize
// the result list
- List<ComputePropertyValueCommand> resCmds = new ArrayList<ComputePropertyValueCommand>(views.size());
+ List<ComputePropertyValueCommand> resCmds = new ArrayList<>(views.size());
boolean isCmdFound = false;
for (View view : views) {
@@ -234,6 +238,56 @@
}
/**
+ * @see org.eclipse.papyrus.internal.infra.gmfdiag.layers.model.layers.impl.LayerOperatorImpl#isDescriptorSet()
+ *
+ * @return
+ */
+ @Override
+ public boolean isDescriptorSet() {
+ return getLayerOperatorDescriptor() != null;
+ }
+
+ /**
+ * Reset the descriptor accordingly to the descriptor name.
+ * The descriptor is resseted only if the ::application and ::layerOperatorDescriptorName are set.
+ * Nothing is done if one of the attribute is not set.
+ * Nothing is done if the descriptor can not be found (maybe a log is issue).
+ * <!-- begin-user-doc -->
+ * Not used ?
+ * <!-- end-user-doc -->
+ *
+ */
+ @Override
+ public void resetDescriptor() {
+
+ if (getApplication() == null || getLayerOperatorDescriptorName() == null) {
+ // A property is not yet set.
+ // do nothing
+ return;
+ }
+
+ try {
+ LayerOperatorDescriptor descriptor = getApplication().getLayerOperatorDescriptorRegistry().getLayerOperatorDescriptor(getLayerOperatorDescriptorName());
+ setLayerOperatorDescriptor(descriptor);
+ } catch (NotFoundException e) {
+ // Not found
+ log.error(this.getClass().getName()
+ + "- Can't get LayerOperatorDescriptor for descriptorName '" + getLayerOperatorDescriptorName() + "'.", e);
+ }
+ }
+
+ /**
+ * @see org.eclipse.papyrus.internal.infra.gmfdiag.layers.model.layers.impl.LayerExpressionImpl#isLayerEnabledInternal()
+ *
+ * @return
+ */
+ @Override
+ public boolean isLayerEnabledInternal() {
+ return isLayerEnabled && isDescriptorSet();
+ }
+
+
+ /**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*