Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenrik Rentz-Reichert2014-08-19 15:05:22 +0000
committerHenrik Rentz-Reichert2014-08-19 15:05:22 +0000
commit22e6576e0ebd7a671d75f332244d120059207850 (patch)
treea6079fd94bb56a0d884d0d338a88f7e1c9e3711e /plugins/org.eclipse.etrice.ui.common.base/src
parent396108661a6b8932854723d72678481a10e0a9c3 (diff)
downloadorg.eclipse.etrice-22e6576e0ebd7a671d75f332244d120059207850.tar.gz
org.eclipse.etrice-22e6576e0ebd7a671d75f332244d120059207850.tar.xz
org.eclipse.etrice-22e6576e0ebd7a671d75f332244d120059207850.zip
[ui.*] split off ui.behavior.fsm from ui.behavior
The major part of the editor code is general and contained in ui.behavior.fsm. The dialogs are created by dependency injection and a factory. Change-Id: I5460dbdd8a99a060ca3cc084c93bf42a6cecbca3
Diffstat (limited to 'plugins/org.eclipse.etrice.ui.common.base/src')
-rw-r--r--plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/editor/DiagramEditorBase.java17
-rw-r--r--plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/support/ChangeAwareCreateConnectionFeature.java19
-rw-r--r--plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/support/ChangeAwareCreateFeature.java18
-rw-r--r--plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/support/ChangeAwareCustomFeature.java15
-rw-r--r--plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/support/DiagramAccessBase.java8
5 files changed, 63 insertions, 14 deletions
diff --git a/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/editor/DiagramEditorBase.java b/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/editor/DiagramEditorBase.java
index 5465a5dba..59778920e 100644
--- a/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/editor/DiagramEditorBase.java
+++ b/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/editor/DiagramEditorBase.java
@@ -71,13 +71,15 @@ public abstract class DiagramEditorBase extends DiagramEditor implements IInputU
protected ModificationTrackingEnabler mte = new ModificationTrackingEnabler();
protected URI inputUri;
- protected Object textEditorClass;
+ private Object textEditorClass;
private SaveOnFocusLostListener saveOnFocusListener;
private SuperClassListener superClassListener;
- public DiagramEditorBase() {
+ public DiagramEditorBase(Object textEditorClass) {
+ this.textEditorClass = textEditorClass;
+
Injector injector = FSMUiModule.getInjector();
injector.injectMembers(this);
@@ -169,18 +171,21 @@ public abstract class DiagramEditorBase extends DiagramEditor implements IInputU
*/
@Override
public void setFocus() {
- super.setFocus();
-
boolean dirtyAlready = isDirty();
// inside this call auto refresh will happen if (and turn the editor dirty)
super.setFocus();
- if(superClassListener.isChangeInSuperClass())
+ if (superClassListener.isChangeInSuperClass())
superClassChanged();
if (!dirtyAlready && isDirty())
doSave(null);
+
+ Diagram diagram = getDiagramTypeProvider().getDiagram();
+ EObject diagramBo = diagram.getLink().getBusinessObjects().iterator().next();
+ if(diagramBo == null || diagramBo.eIsProxy())
+ handleMissingDiagramBo(diagram);
}
public ModelComponent getModelComponent() {
@@ -297,7 +302,9 @@ public abstract class DiagramEditorBase extends DiagramEditor implements IInputU
return null;
}
+ protected abstract void handleMissingDiagramBo(Diagram diagram);
protected abstract void superClassChanged();
+ protected abstract EObject getModel();
public URI getInputUri() {
return inputUri;
diff --git a/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/support/ChangeAwareCreateConnectionFeature.java b/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/support/ChangeAwareCreateConnectionFeature.java
index 1434692a9..03d67e7f2 100644
--- a/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/support/ChangeAwareCreateConnectionFeature.java
+++ b/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/support/ChangeAwareCreateConnectionFeature.java
@@ -23,14 +23,21 @@ import org.eclipse.graphiti.features.impl.AbstractCreateConnectionFeature;
import org.eclipse.graphiti.features.impl.AbstractCreateFeature;
import org.eclipse.graphiti.mm.pictograms.Connection;
+import com.google.inject.Injector;
+
public abstract class ChangeAwareCreateConnectionFeature extends
AbstractCreateConnectionFeature {
boolean hasDoneChanges;
+ private Injector injector;
+
+ public ChangeAwareCreateConnectionFeature(IFeatureProvider fp, String name, String description) {
+ this(fp, null, name, description);
+ }
- public ChangeAwareCreateConnectionFeature(IFeatureProvider fp, String name,
- String description) {
+ public ChangeAwareCreateConnectionFeature(IFeatureProvider fp, Injector injector, String name, String description) {
super(fp, name, description);
+ this.injector = injector;
this.hasDoneChanges = false;
}
@@ -73,4 +80,12 @@ public abstract class ChangeAwareCreateConnectionFeature extends
protected EObject getContainerModelObject(ICreateConnectionContext context){
return (EObject) getBusinessObjectForPictogramElement(getDiagram());
}
+
+
+ /**
+ * @return the Guice injector
+ */
+ public Injector getInjector() {
+ return injector;
+ }
}
diff --git a/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/support/ChangeAwareCreateFeature.java b/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/support/ChangeAwareCreateFeature.java
index ded7e2f07..c35e6257f 100644
--- a/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/support/ChangeAwareCreateFeature.java
+++ b/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/support/ChangeAwareCreateFeature.java
@@ -20,13 +20,20 @@ import org.eclipse.graphiti.features.IFeatureProvider;
import org.eclipse.graphiti.features.context.ICreateContext;
import org.eclipse.graphiti.features.impl.AbstractCreateFeature;
+import com.google.inject.Injector;
+
public abstract class ChangeAwareCreateFeature extends AbstractCreateFeature {
+ private Injector injector;
boolean hasDoneChanges;
- public ChangeAwareCreateFeature(IFeatureProvider fp, String name,
- String description) {
+ public ChangeAwareCreateFeature(IFeatureProvider fp, String name, String description) {
+ this(fp, null, name, description);
+ }
+
+ public ChangeAwareCreateFeature(IFeatureProvider fp, Injector injector, String name, String description) {
super(fp, name, description);
+ this.injector = injector;
this.hasDoneChanges = false;
}
@@ -68,4 +75,11 @@ public abstract class ChangeAwareCreateFeature extends AbstractCreateFeature {
protected EObject getContainerModelObject(ICreateContext context){
return (EObject) getBusinessObjectForPictogramElement(getDiagram());
}
+
+ /**
+ * @return the Guice injector
+ */
+ public Injector getInjector() {
+ return injector;
+ }
}
diff --git a/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/support/ChangeAwareCustomFeature.java b/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/support/ChangeAwareCustomFeature.java
index 93ea40741..b984da0b5 100644
--- a/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/support/ChangeAwareCustomFeature.java
+++ b/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/support/ChangeAwareCustomFeature.java
@@ -20,12 +20,20 @@ import org.eclipse.graphiti.features.IFeatureProvider;
import org.eclipse.graphiti.features.context.ICustomContext;
import org.eclipse.graphiti.features.custom.AbstractCustomFeature;
+import com.google.inject.Injector;
+
public abstract class ChangeAwareCustomFeature extends AbstractCustomFeature {
+ private Injector injector;
boolean hasDoneChanges;
public ChangeAwareCustomFeature(IFeatureProvider fp) {
+ this(fp, null);
+ }
+
+ public ChangeAwareCustomFeature(IFeatureProvider fp, Injector injector) {
super(fp);
+ this.injector = injector;
this.hasDoneChanges = false;
}
@@ -61,4 +69,11 @@ public abstract class ChangeAwareCustomFeature extends AbstractCustomFeature {
protected EObject getContainerModelObject(ICustomContext context){
return (EObject) getBusinessObjectForPictogramElement(getDiagram());
}
+
+ /**
+ * @return the Guice injector
+ */
+ public Injector getInjector() {
+ return injector;
+ }
}
diff --git a/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/support/DiagramAccessBase.java b/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/support/DiagramAccessBase.java
index c04b94b84..42ef42770 100644
--- a/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/support/DiagramAccessBase.java
+++ b/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/support/DiagramAccessBase.java
@@ -31,7 +31,6 @@ import org.eclipse.emf.transaction.TransactionalEditingDomain;
import org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl;
import org.eclipse.emf.transaction.util.TransactionUtil;
import org.eclipse.etrice.core.common.ui.linking.GlobalNonPlatformURIEditorOpener;
-import org.eclipse.etrice.core.fsm.ui.FSMUiModule;
import org.eclipse.etrice.ui.common.base.UIBaseActivator;
import org.eclipse.etrice.ui.common.base.editor.DiagramEditorBase;
import org.eclipse.etrice.ui.common.base.preferences.UIBasePreferenceConstants;
@@ -46,7 +45,6 @@ import org.eclipse.xtext.resource.XtextResourceSet;
import org.eclipse.xtext.ui.resource.IResourceSetProvider;
import com.google.inject.Inject;
-import com.google.inject.Injector;
/**
* @author Henrik Rentz-Reichert
@@ -64,9 +62,7 @@ public abstract class DiagramAccessBase {
*/
public DiagramAccessBase() {
super();
-
- Injector injector = FSMUiModule.getInjector();
- injector.injectMembers(this);
+ injectMembers();
}
public Diagram getDiagram(EObject rootObject) {
@@ -248,4 +244,6 @@ public abstract class DiagramAccessBase {
abstract protected String getEditorId();
abstract protected Command getInitialCommand(EObject rootObject, Diagram diagram, TransactionalEditingDomain editingDomain);
abstract protected Command getUpdateCommand(Diagram diagram, TransactionalEditingDomain editingDomain);
+ abstract protected void injectMembers();
+
} \ No newline at end of file

Back to the top