diff options
author | Henrik Rentz-Reichert | 2014-08-19 15:05:22 +0000 |
---|---|---|
committer | Henrik Rentz-Reichert | 2014-08-19 15:05:22 +0000 |
commit | 22e6576e0ebd7a671d75f332244d120059207850 (patch) | |
tree | a6079fd94bb56a0d884d0d338a88f7e1c9e3711e /plugins/org.eclipse.etrice.ui.common.base/src | |
parent | 396108661a6b8932854723d72678481a10e0a9c3 (diff) | |
download | org.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')
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 |