Skip to content
Snippets Groups Projects
Commit d5401573 authored by Lukas Ladenberger's avatar Lukas Ladenberger
Browse files

live preview in observer wizards

parent 8010decc
No related branches found
No related tags found
No related merge requests found
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
package de.bmotionstudio.gef.editor.figure; package de.bmotionstudio.gef.editor.figure;
import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
...@@ -43,6 +44,8 @@ public class BMSImageFigure extends AbstractBMotionFigure { ...@@ -43,6 +44,8 @@ public class BMSImageFigure extends AbstractBMotionFigure {
if (currentGIFThread != null) if (currentGIFThread != null)
currentGIFThread.interrupt(); currentGIFThread.interrupt();
if (new File(myPath).exists()) {
loader.load(myPath); loader.load(myPath);
List<Image> imgList = images.get(myPath); List<Image> imgList = images.get(myPath);
...@@ -54,7 +57,8 @@ public class BMSImageFigure extends AbstractBMotionFigure { ...@@ -54,7 +57,8 @@ public class BMSImageFigure extends AbstractBMotionFigure {
} }
if (loader.data.length > 1) { // GIF file if (loader.data.length > 1) { // GIF file
currentGIFThread = new GIFThread(this.imageFigure, myPath, imgList); currentGIFThread = new GIFThread(this.imageFigure, myPath,
imgList);
currentGIFThread.start(); currentGIFThread.start();
} else { // Non GIF file } else { // Non GIF file
imageFigure.setImage(imgList.get(0)); imageFigure.setImage(imgList.get(0));
...@@ -62,6 +66,8 @@ public class BMSImageFigure extends AbstractBMotionFigure { ...@@ -62,6 +66,8 @@ public class BMSImageFigure extends AbstractBMotionFigure {
} }
}
/* /*
* (non-Javadoc) * (non-Javadoc)
* *
......
...@@ -16,10 +16,12 @@ import org.eclipse.jface.dialogs.MessageDialog; ...@@ -16,10 +16,12 @@ import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.CellEditor; import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.CheckboxCellEditor; import org.eclipse.jface.viewers.CheckboxCellEditor;
import org.eclipse.jface.viewers.EditingSupport; import org.eclipse.jface.viewers.EditingSupport;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.ITableColorProvider; import org.eclipse.jface.viewers.ITableColorProvider;
import org.eclipse.jface.viewers.ITableFontProvider; import org.eclipse.jface.viewers.ITableFontProvider;
import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TableViewerColumn; import org.eclipse.jface.viewers.TableViewerColumn;
import org.eclipse.jface.wizard.WizardPage; import org.eclipse.jface.wizard.WizardPage;
...@@ -38,12 +40,14 @@ import org.eclipse.swt.widgets.Composite; ...@@ -38,12 +40,14 @@ import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Display;
import de.be4.classicalb.core.parser.BParser; import de.be4.classicalb.core.parser.BParser;
import de.bmotionstudio.gef.editor.AttributeConstants;
import de.bmotionstudio.gef.editor.BMotionStudioImage; import de.bmotionstudio.gef.editor.BMotionStudioImage;
import de.bmotionstudio.gef.editor.EditorImageRegistry; import de.bmotionstudio.gef.editor.EditorImageRegistry;
import de.bmotionstudio.gef.editor.edit.PredicateEditingSupport; import de.bmotionstudio.gef.editor.edit.PredicateEditingSupport;
import de.bmotionstudio.gef.editor.edit.TextEditingSupport; import de.bmotionstudio.gef.editor.edit.TextEditingSupport;
import de.bmotionstudio.gef.editor.model.BControl; import de.bmotionstudio.gef.editor.model.BControl;
import de.bmotionstudio.gef.editor.observer.Observer; import de.bmotionstudio.gef.editor.observer.Observer;
import de.bmotionstudio.gef.editor.observer.ObserverEvalObject;
import de.bmotionstudio.gef.editor.observer.ObserverWizard; import de.bmotionstudio.gef.editor.observer.ObserverWizard;
import de.bmotionstudio.gef.editor.observer.SwitchChildCoordinates; import de.bmotionstudio.gef.editor.observer.SwitchChildCoordinates;
import de.bmotionstudio.gef.editor.observer.ToggleObjectCoordinates; import de.bmotionstudio.gef.editor.observer.ToggleObjectCoordinates;
...@@ -52,6 +56,8 @@ import de.bmotionstudio.gef.editor.util.WizardObserverUtil; ...@@ -52,6 +56,8 @@ import de.bmotionstudio.gef.editor.util.WizardObserverUtil;
public class WizardObserverCSwitchCoordinates extends ObserverWizard { public class WizardObserverCSwitchCoordinates extends ObserverWizard {
private String lastChangedControlID;
private class ObserverCSwitchCoordinatesPage extends WizardPage { private class ObserverCSwitchCoordinatesPage extends WizardPage {
private TableViewer tableViewer; private TableViewer tableViewer;
...@@ -68,7 +74,37 @@ public class WizardObserverCSwitchCoordinates extends ObserverWizard { ...@@ -68,7 +74,37 @@ public class WizardObserverCSwitchCoordinates extends ObserverWizard {
container.setLayout(new GridLayout(1, true)); container.setLayout(new GridLayout(1, true));
tableViewer = WizardObserverUtil.createObserverWizardTableViewer( tableViewer = WizardObserverUtil.createObserverWizardTableViewer(
container, ToggleObjectCoordinates.class, getObserver()); container, ToggleObjectCoordinates.class,
(ObserverWizard) getWizard());
tableViewer
.addSelectionChangedListener(new ISelectionChangedListener() {
@Override
public void selectionChanged(SelectionChangedEvent event) {
IStructuredSelection selection = (IStructuredSelection) event
.getSelection();
Object firstElement = selection.getFirstElement();
if (firstElement instanceof ObserverEvalObject) {
restorePreview();
ObserverEvalObject observerEvalObject = (ObserverEvalObject) firstElement;
BControl control = getBControl();
ToggleObjectCoordinates toggleObjectCoordinates = (ToggleObjectCoordinates) observerEvalObject;
String attributeX = AttributeConstants.ATTRIBUTE_X;
String attributeY = AttributeConstants.ATTRIBUTE_Y;
String x = toggleObjectCoordinates.getX();
String y = toggleObjectCoordinates.getY();
String controlID = toggleObjectCoordinates
.getBcontrol();
BControl bControl = control.getChild(controlID);
if (bControl != null) {
bControl.setAttributeValue(attributeX, x);
bControl.setAttributeValue(attributeY, y);
}
lastChangedControlID = controlID;
}
}
});
TableViewerColumn column = new TableViewerColumn(tableViewer, TableViewerColumn column = new TableViewerColumn(tableViewer,
SWT.NONE); SWT.NONE);
...@@ -189,6 +225,7 @@ public class WizardObserverCSwitchCoordinates extends ObserverWizard { ...@@ -189,6 +225,7 @@ public class WizardObserverCSwitchCoordinates extends ObserverWizard {
@Override @Override
protected Boolean prepareToFinish() { protected Boolean prepareToFinish() {
restorePreview();
if (((SwitchChildCoordinates) getObserver()).getToggleObjects().size() == 0) { if (((SwitchChildCoordinates) getObserver()).getToggleObjects().size() == 0) {
setObserverDelete(true); setObserverDelete(true);
} else { } else {
...@@ -206,6 +243,22 @@ public class WizardObserverCSwitchCoordinates extends ObserverWizard { ...@@ -206,6 +243,22 @@ public class WizardObserverCSwitchCoordinates extends ObserverWizard {
return true; return true;
} }
private void restorePreview() {
if (lastChangedControlID != null) {
BControl bControl = getBControl().getChild(lastChangedControlID);
if (bControl != null) {
bControl.restoreDefaultValue(AttributeConstants.ATTRIBUTE_X);
bControl.restoreDefaultValue(AttributeConstants.ATTRIBUTE_Y);
}
}
}
@Override
public boolean performCancel() {
restorePreview();
return super.performCancel();
}
@Override @Override
public Point getSize() { public Point getSize() {
return new Point(650, 500); return new Point(650, 500);
......
...@@ -80,7 +80,8 @@ public class WizardObserverListenOperationByPredicate extends ObserverWizard { ...@@ -80,7 +80,8 @@ public class WizardObserverListenOperationByPredicate extends ObserverWizard {
setControl(container); setControl(container);
tableViewer = WizardObserverUtil.createObserverWizardTableViewer( tableViewer = WizardObserverUtil.createObserverWizardTableViewer(
container, PredicateOperation.class, getObserver()); container, PredicateOperation.class,
(ObserverWizard) getWizard());
TableViewerColumn column = new TableViewerColumn(tableViewer, TableViewerColumn column = new TableViewerColumn(tableViewer,
SWT.NONE); SWT.NONE);
......
...@@ -19,11 +19,13 @@ import org.eclipse.jface.dialogs.MessageDialog; ...@@ -19,11 +19,13 @@ import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.CellEditor; import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.ComboBoxViewerCellEditor; import org.eclipse.jface.viewers.ComboBoxViewerCellEditor;
import org.eclipse.jface.viewers.EditingSupport; import org.eclipse.jface.viewers.EditingSupport;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.ITableColorProvider; import org.eclipse.jface.viewers.ITableColorProvider;
import org.eclipse.jface.viewers.ITableFontProvider; import org.eclipse.jface.viewers.ITableFontProvider;
import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TableViewerColumn; import org.eclipse.jface.viewers.TableViewerColumn;
...@@ -54,6 +56,7 @@ import de.bmotionstudio.gef.editor.edit.IsExpressionModeEditingSupport; ...@@ -54,6 +56,7 @@ import de.bmotionstudio.gef.editor.edit.IsExpressionModeEditingSupport;
import de.bmotionstudio.gef.editor.edit.PredicateEditingSupport; import de.bmotionstudio.gef.editor.edit.PredicateEditingSupport;
import de.bmotionstudio.gef.editor.model.BControl; import de.bmotionstudio.gef.editor.model.BControl;
import de.bmotionstudio.gef.editor.observer.Observer; import de.bmotionstudio.gef.editor.observer.Observer;
import de.bmotionstudio.gef.editor.observer.ObserverEvalObject;
import de.bmotionstudio.gef.editor.observer.ObserverWizard; import de.bmotionstudio.gef.editor.observer.ObserverWizard;
import de.bmotionstudio.gef.editor.observer.SetAttribute; import de.bmotionstudio.gef.editor.observer.SetAttribute;
import de.bmotionstudio.gef.editor.observer.SetAttributeObject; import de.bmotionstudio.gef.editor.observer.SetAttributeObject;
...@@ -62,6 +65,8 @@ import de.bmotionstudio.gef.editor.util.WizardObserverUtil; ...@@ -62,6 +65,8 @@ import de.bmotionstudio.gef.editor.util.WizardObserverUtil;
public class WizardObserverSetAttribute extends ObserverWizard { public class WizardObserverSetAttribute extends ObserverWizard {
private String lastChangedAttributeID;
private class WizardSetAttributePage extends WizardPage { private class WizardSetAttributePage extends WizardPage {
private WritableList input; private WritableList input;
...@@ -86,7 +91,37 @@ public class WizardObserverSetAttribute extends ObserverWizard { ...@@ -86,7 +91,37 @@ public class WizardObserverSetAttribute extends ObserverWizard {
container.setLayout(gl); container.setLayout(gl);
tableViewer = WizardObserverUtil.createObserverWizardTableViewer( tableViewer = WizardObserverUtil.createObserverWizardTableViewer(
container, SetAttributeObject.class, getObserver()); container, SetAttributeObject.class,
(ObserverWizard) getWizard());
tableViewer
.addSelectionChangedListener(new ISelectionChangedListener() {
@Override
public void selectionChanged(SelectionChangedEvent event) {
IStructuredSelection selection = (IStructuredSelection) event
.getSelection();
Object firstElement = selection.getFirstElement();
if (firstElement instanceof ObserverEvalObject) {
ObserverEvalObject observerEvalObject = (ObserverEvalObject) firstElement;
BControl control = getBControl();
if (lastChangedAttributeID != null)
control.restoreDefaultValue(lastChangedAttributeID);
SetAttributeObject setAttributeObj = (SetAttributeObject) observerEvalObject;
String attribute = setAttributeObj
.getAttribute();
Object value = setAttributeObj.getValue();
control.setAttributeValue(attribute, value);
lastChangedAttributeID = attribute;
}
}
});
TableViewerColumn column = new TableViewerColumn(tableViewer, TableViewerColumn column = new TableViewerColumn(tableViewer,
SWT.NONE); SWT.NONE);
...@@ -278,6 +313,7 @@ public class WizardObserverSetAttribute extends ObserverWizard { ...@@ -278,6 +313,7 @@ public class WizardObserverSetAttribute extends ObserverWizard {
@Override @Override
protected Boolean prepareToFinish() { protected Boolean prepareToFinish() {
getBControl().restoreDefaultValue(lastChangedAttributeID);
if (((SetAttribute) getObserver()).getSetAttributeObjects().size() == 0) { if (((SetAttribute) getObserver()).getSetAttributeObjects().size() == 0) {
setObserverDelete(true); setObserverDelete(true);
} else { } else {
...@@ -294,6 +330,12 @@ public class WizardObserverSetAttribute extends ObserverWizard { ...@@ -294,6 +330,12 @@ public class WizardObserverSetAttribute extends ObserverWizard {
return true; return true;
} }
@Override
public boolean performCancel() {
getBControl().restoreDefaultValue(lastChangedAttributeID);
return super.performCancel();
}
private class ObserverLabelProvider extends ObservableMapLabelProvider private class ObserverLabelProvider extends ObservableMapLabelProvider
implements ITableLabelProvider, ITableColorProvider, implements ITableLabelProvider, ITableColorProvider,
ITableFontProvider { ITableFontProvider {
......
...@@ -16,10 +16,12 @@ import org.eclipse.jface.dialogs.MessageDialog; ...@@ -16,10 +16,12 @@ import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.CellEditor; import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.CheckboxCellEditor; import org.eclipse.jface.viewers.CheckboxCellEditor;
import org.eclipse.jface.viewers.EditingSupport; import org.eclipse.jface.viewers.EditingSupport;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.ITableColorProvider; import org.eclipse.jface.viewers.ITableColorProvider;
import org.eclipse.jface.viewers.ITableFontProvider; import org.eclipse.jface.viewers.ITableFontProvider;
import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TableViewerColumn; import org.eclipse.jface.viewers.TableViewerColumn;
...@@ -39,12 +41,14 @@ import org.eclipse.swt.widgets.Composite; ...@@ -39,12 +41,14 @@ import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Display;
import de.be4.classicalb.core.parser.BParser; import de.be4.classicalb.core.parser.BParser;
import de.bmotionstudio.gef.editor.AttributeConstants;
import de.bmotionstudio.gef.editor.BMotionStudioImage; import de.bmotionstudio.gef.editor.BMotionStudioImage;
import de.bmotionstudio.gef.editor.EditorImageRegistry; import de.bmotionstudio.gef.editor.EditorImageRegistry;
import de.bmotionstudio.gef.editor.edit.PredicateEditingSupport; import de.bmotionstudio.gef.editor.edit.PredicateEditingSupport;
import de.bmotionstudio.gef.editor.edit.TextEditingSupport; import de.bmotionstudio.gef.editor.edit.TextEditingSupport;
import de.bmotionstudio.gef.editor.model.BControl; import de.bmotionstudio.gef.editor.model.BControl;
import de.bmotionstudio.gef.editor.observer.Observer; import de.bmotionstudio.gef.editor.observer.Observer;
import de.bmotionstudio.gef.editor.observer.ObserverEvalObject;
import de.bmotionstudio.gef.editor.observer.ObserverWizard; import de.bmotionstudio.gef.editor.observer.ObserverWizard;
import de.bmotionstudio.gef.editor.observer.SwitchCoordinates; import de.bmotionstudio.gef.editor.observer.SwitchCoordinates;
import de.bmotionstudio.gef.editor.observer.ToggleObjectCoordinates; import de.bmotionstudio.gef.editor.observer.ToggleObjectCoordinates;
...@@ -69,7 +73,31 @@ public class WizardObserverSwitchCoordinates extends ObserverWizard { ...@@ -69,7 +73,31 @@ public class WizardObserverSwitchCoordinates extends ObserverWizard {
container.setLayout(new GridLayout(1, true)); container.setLayout(new GridLayout(1, true));
tableViewer = WizardObserverUtil.createObserverWizardTableViewer( tableViewer = WizardObserverUtil.createObserverWizardTableViewer(
container, ToggleObjectCoordinates.class, getObserver()); container, ToggleObjectCoordinates.class,
(ObserverWizard) getWizard());
tableViewer
.addSelectionChangedListener(new ISelectionChangedListener() {
@Override
public void selectionChanged(SelectionChangedEvent event) {
IStructuredSelection selection = (IStructuredSelection) event
.getSelection();
Object firstElement = selection.getFirstElement();
if (firstElement instanceof ObserverEvalObject) {
ObserverEvalObject observerEvalObject = (ObserverEvalObject) firstElement;
BControl control = getBControl();
ToggleObjectCoordinates toggleObjectCoordinates = (ToggleObjectCoordinates) observerEvalObject;
String attributeX = AttributeConstants.ATTRIBUTE_X;
String attributeY = AttributeConstants.ATTRIBUTE_Y;
String x = toggleObjectCoordinates.getX();
String y = toggleObjectCoordinates.getY();
control.setAttributeValue(attributeX, x);
control.setAttributeValue(attributeY, y);
}
}
});
TableViewerColumn column = new TableViewerColumn(tableViewer, TableViewerColumn column = new TableViewerColumn(tableViewer,
SWT.NONE); SWT.NONE);
...@@ -184,6 +212,8 @@ public class WizardObserverSwitchCoordinates extends ObserverWizard { ...@@ -184,6 +212,8 @@ public class WizardObserverSwitchCoordinates extends ObserverWizard {
@Override @Override
protected Boolean prepareToFinish() { protected Boolean prepareToFinish() {
getBControl().restoreDefaultValue(AttributeConstants.ATTRIBUTE_X);
getBControl().restoreDefaultValue(AttributeConstants.ATTRIBUTE_Y);
if (((SwitchCoordinates) getObserver()).getToggleObjects().size() == 0) { if (((SwitchCoordinates) getObserver()).getToggleObjects().size() == 0) {
setObserverDelete(true); setObserverDelete(true);
} else { } else {
...@@ -200,6 +230,13 @@ public class WizardObserverSwitchCoordinates extends ObserverWizard { ...@@ -200,6 +230,13 @@ public class WizardObserverSwitchCoordinates extends ObserverWizard {
return true; return true;
} }
@Override
public boolean performCancel() {
getBControl().restoreDefaultValue(AttributeConstants.ATTRIBUTE_X);
getBControl().restoreDefaultValue(AttributeConstants.ATTRIBUTE_Y);
return super.performCancel();
}
@Override @Override
public Point getSize() { public Point getSize() {
return new Point(650, 500); return new Point(650, 500);
......
...@@ -13,10 +13,12 @@ import org.eclipse.core.databinding.observable.map.IObservableMap; ...@@ -13,10 +13,12 @@ import org.eclipse.core.databinding.observable.map.IObservableMap;
import org.eclipse.jface.databinding.viewers.ObservableListContentProvider; import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
import org.eclipse.jface.databinding.viewers.ObservableMapLabelProvider; import org.eclipse.jface.databinding.viewers.ObservableMapLabelProvider;
import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.ITableColorProvider; import org.eclipse.jface.viewers.ITableColorProvider;
import org.eclipse.jface.viewers.ITableFontProvider; import org.eclipse.jface.viewers.ITableFontProvider;
import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TableViewerColumn; import org.eclipse.jface.viewers.TableViewerColumn;
...@@ -44,6 +46,7 @@ import de.bmotionstudio.gef.editor.edit.IsExpressionModeEditingSupport; ...@@ -44,6 +46,7 @@ import de.bmotionstudio.gef.editor.edit.IsExpressionModeEditingSupport;
import de.bmotionstudio.gef.editor.edit.PredicateEditingSupport; import de.bmotionstudio.gef.editor.edit.PredicateEditingSupport;
import de.bmotionstudio.gef.editor.model.BControl; import de.bmotionstudio.gef.editor.model.BControl;
import de.bmotionstudio.gef.editor.observer.Observer; import de.bmotionstudio.gef.editor.observer.Observer;
import de.bmotionstudio.gef.editor.observer.ObserverEvalObject;
import de.bmotionstudio.gef.editor.observer.ObserverWizard; import de.bmotionstudio.gef.editor.observer.ObserverWizard;
import de.bmotionstudio.gef.editor.observer.SwitchImage; import de.bmotionstudio.gef.editor.observer.SwitchImage;
import de.bmotionstudio.gef.editor.observer.ToggleObjectImage; import de.bmotionstudio.gef.editor.observer.ToggleObjectImage;
...@@ -68,7 +71,27 @@ public class WizardObserverSwitchImage extends ObserverWizard { ...@@ -68,7 +71,27 @@ public class WizardObserverSwitchImage extends ObserverWizard {
container.setLayout(new GridLayout(1, true)); container.setLayout(new GridLayout(1, true));
tableViewer = WizardObserverUtil.createObserverWizardTableViewer( tableViewer = WizardObserverUtil.createObserverWizardTableViewer(
container, ToggleObjectImage.class, getObserver()); container, ToggleObjectImage.class,
(ObserverWizard) getWizard());
tableViewer
.addSelectionChangedListener(new ISelectionChangedListener() {
@Override
public void selectionChanged(SelectionChangedEvent event) {
IStructuredSelection selection = (IStructuredSelection) event
.getSelection();
Object firstElement = selection.getFirstElement();
if (firstElement instanceof ObserverEvalObject) {
ObserverEvalObject observerEvalObject = (ObserverEvalObject) firstElement;
BControl control = getBControl();
ToggleObjectImage toggleObjImage = (ToggleObjectImage) observerEvalObject;
String attribute = AttributeConstants.ATTRIBUTE_IMAGE;
String image = toggleObjImage.getImage();
control.setAttributeValue(attribute, image);
}
}
});
TableViewerColumn column = new TableViewerColumn(tableViewer, TableViewerColumn column = new TableViewerColumn(tableViewer,
SWT.NONE); SWT.NONE);
...@@ -175,6 +198,7 @@ public class WizardObserverSwitchImage extends ObserverWizard { ...@@ -175,6 +198,7 @@ public class WizardObserverSwitchImage extends ObserverWizard {
@Override @Override
protected Boolean prepareToFinish() { protected Boolean prepareToFinish() {
getBControl().restoreDefaultValue(AttributeConstants.ATTRIBUTE_IMAGE);
if (((SwitchImage) getObserver()).getToggleObjects().size() == 0) { if (((SwitchImage) getObserver()).getToggleObjects().size() == 0) {
setObserverDelete(true); setObserverDelete(true);
} else { } else {
...@@ -191,6 +215,12 @@ public class WizardObserverSwitchImage extends ObserverWizard { ...@@ -191,6 +215,12 @@ public class WizardObserverSwitchImage extends ObserverWizard {
return true; return true;
} }
@Override
public boolean performCancel() {
getBControl().restoreDefaultValue(AttributeConstants.ATTRIBUTE_IMAGE);
return super.performCancel();
}
@Override @Override
public Point getSize() { public Point getSize() {
return new Point(650, 500); return new Point(650, 500);
......
...@@ -19,7 +19,7 @@ import org.eclipse.swt.widgets.TableItem; ...@@ -19,7 +19,7 @@ import org.eclipse.swt.widgets.TableItem;
import de.bmotionstudio.gef.editor.BMotionStudioSWTConstants; import de.bmotionstudio.gef.editor.BMotionStudioSWTConstants;
import de.bmotionstudio.gef.editor.library.AttributeTransfer; import de.bmotionstudio.gef.editor.library.AttributeTransfer;
import de.bmotionstudio.gef.editor.observer.Observer; import de.bmotionstudio.gef.editor.observer.ObserverWizard;
import de.bmotionstudio.gef.editor.observer.wizard.WizardObserverAddItemAction; import de.bmotionstudio.gef.editor.observer.wizard.WizardObserverAddItemAction;
import de.bmotionstudio.gef.editor.observer.wizard.WizardObserverDeleteItemsAction; import de.bmotionstudio.gef.editor.observer.wizard.WizardObserverDeleteItemsAction;
import de.bmotionstudio.gef.editor.observer.wizard.WizardObserverDragListener; import de.bmotionstudio.gef.editor.observer.wizard.WizardObserverDragListener;
...@@ -35,7 +35,7 @@ public class WizardObserverUtil { ...@@ -35,7 +35,7 @@ public class WizardObserverUtil {
} }
public static TableViewer createObserverWizardTableViewer(Composite parent, public static TableViewer createObserverWizardTableViewer(Composite parent,
Class<?> itemClass, Observer observer) { Class<?> itemClass, final ObserverWizard observerWizard) {
final TableViewer tableViewer = new TableViewer(parent, SWT.BORDER final TableViewer tableViewer = new TableViewer(parent, SWT.BORDER
| SWT.FULL_SELECTION | SWT.MULTI); | SWT.FULL_SELECTION | SWT.MULTI);
...@@ -47,12 +47,9 @@ public class WizardObserverUtil { ...@@ -47,12 +47,9 @@ public class WizardObserverUtil {
int operations = DND.DROP_COPY | DND.DROP_MOVE; int operations = DND.DROP_COPY | DND.DROP_MOVE;
Transfer[] transferTypes = new Transfer[] { AttributeTransfer Transfer[] transferTypes = new Transfer[] { AttributeTransfer
.getInstance() }; .getInstance() };
tableViewer tableViewer.addDropSupport(operations, transferTypes,
.addDropSupport( new WizardObserverDropListener(tableViewer, observerWizard
operations, .getObserver().getName()));
transferTypes,
new WizardObserverDropListener(tableViewer, observer
.getName()));
tableViewer.addDragSupport(operations, transferTypes, tableViewer.addDragSupport(operations, transferTypes,
new WizardObserverDragListener(tableViewer)); new WizardObserverDragListener(tableViewer));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment