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

some bugfixes

parent b4843c4d
No related branches found
No related tags found
No related merge requests found
Showing
with 176 additions and 111 deletions
......@@ -13,6 +13,8 @@ import org.eclipse.ui.plugin.AbstractUIPlugin;
import de.bmotionstudio.gef.editor.internal.BControlTemplate;
import de.bmotionstudio.gef.editor.model.Visualization;
import de.bmotionstudio.gef.editor.part.BControlTreeEditPart;
import de.bmotionstudio.gef.editor.part.BMSAbstractTreeEditPart;
/**
* @author Lukas Ladenberger
......@@ -40,4 +42,8 @@ public abstract class AbstractBControlService {
return true;
}
public BMSAbstractTreeEditPart createTreeEditPart() {
return new BControlTreeEditPart();
}
}
......@@ -14,6 +14,7 @@ import org.eclipse.core.runtime.IExtensionRegistry;
import org.eclipse.core.runtime.Platform;
import org.eclipse.gef.ContextMenuProvider;
import org.eclipse.gef.EditPartViewer;
import org.eclipse.gef.editparts.AbstractEditPart;
import org.eclipse.gef.ui.actions.ActionRegistry;
import org.eclipse.gef.ui.actions.GEFActionConstants;
import org.eclipse.jface.action.IAction;
......@@ -24,11 +25,11 @@ import org.eclipse.ui.actions.ActionFactory;
import de.bmotionstudio.gef.editor.action.OpenSchedulerEventAction;
import de.bmotionstudio.gef.editor.model.BControl;
import de.bmotionstudio.gef.editor.part.BMSAbstractEditPart;
import de.bmotionstudio.gef.editor.part.VisualizationPart;
import de.bmotionstudio.gef.editor.model.ObserverRootVirtualTreeNode;
import de.bmotionstudio.gef.editor.model.Visualization;
import de.bmotionstudio.gef.editor.scheduler.SchedulerEvent;
public class AppContextMenuProvider extends ContextMenuProvider {
public class BMSContextMenuProvider extends ContextMenuProvider {
private ActionRegistry actionRegistry;
......@@ -36,7 +37,7 @@ public class AppContextMenuProvider extends ContextMenuProvider {
private String[] eventIDs = { AttributeConstants.EVENT_MOUSECLICK };
public AppContextMenuProvider(EditPartViewer viewer, ActionRegistry registry) {
public BMSContextMenuProvider(EditPartViewer viewer, ActionRegistry registry) {
super(viewer);
setActionRegistry(registry);
}
......@@ -54,24 +55,32 @@ public class AppContextMenuProvider extends ContextMenuProvider {
action = getActionRegistry().getAction(ActionFactory.REDO.getId());
menu.appendToGroup(GEFActionConstants.GROUP_UNDO, action);
action = actionRegistry.getAction(ActionFactory.COPY.getId());
action = getActionRegistry().getAction(ActionFactory.COPY.getId());
menu.appendToGroup(GEFActionConstants.GROUP_COPY, action);
action = actionRegistry.getAction(ActionFactory.PASTE.getId());
action = getActionRegistry().getAction(ActionFactory.PASTE.getId());
menu.appendToGroup(GEFActionConstants.GROUP_COPY, action);
action = getActionRegistry().getAction(ActionFactory.DELETE.getId());
menu.appendToGroup(GEFActionConstants.GROUP_EDIT, action);
buildCustomMenu(menu);
Object sel = ((IStructuredSelection) getViewer().getSelection())
.getFirstElement();
buildObserverMenu(menu);
buildEventMenu(menu);
if (sel instanceof AbstractEditPart) {
AbstractEditPart editPart = (AbstractEditPart) sel;
buildCustomMenu(menu, editPart);
buildObserverMenu(menu, editPart);
buildEventMenu(menu, editPart);
}
}
private void buildCustomMenu(IMenuManager menu) {
private void buildCustomMenu(IMenuManager menu, AbstractEditPart editPart) {
Object model = editPart.getModel();
if (model instanceof BControl) {
IExtensionPoint extensionPoint = registry
.getExtensionPoint("de.bmotionstudio.gef.editor.installMenu");
......@@ -86,7 +95,8 @@ public class AppContextMenuProvider extends ContextMenuProvider {
IInstallMenu installMenuClass = (IInstallMenu) configurationElement
.createExecutableExtension("class");
installMenuClass.installMenu(menu, getActionRegistry());
installMenuClass.installMenu(menu,
getActionRegistry());
} catch (final CoreException e) {
e.printStackTrace();
......@@ -100,7 +110,20 @@ public class AppContextMenuProvider extends ContextMenuProvider {
}
private void buildObserverMenu(IMenuManager menu) {
}
private void buildObserverMenu(IMenuManager menu, AbstractEditPart editPart) {
Object model = editPart.getModel();
BControl bcontrol = null;
if (model instanceof BControl)
bcontrol = (BControl) model;
else if (model instanceof ObserverRootVirtualTreeNode)
bcontrol = ((ObserverRootVirtualTreeNode) model).getControl();
else
return;
final MenuManager handleObserverMenu = new MenuManager("Observer",
BMotionStudioImage.getImageDescriptor(
......@@ -108,15 +131,6 @@ public class AppContextMenuProvider extends ContextMenuProvider {
"icons/icon_observer.gif"), "observerMenu");
menu.appendToGroup(GEFActionConstants.GROUP_ADD, handleObserverMenu);
IStructuredSelection selection = (IStructuredSelection) BMotionEditorPlugin
.getActiveEditor().getEditorSite().getSelectionProvider()
.getSelection();
if (selection.getFirstElement() instanceof BMSAbstractEditPart) {
BControl bcontrol = (BControl) ((BMSAbstractEditPart) selection
.getFirstElement()).getModel();
IExtensionPoint extensionPoint = registry
.getExtensionPoint("de.bmotionstudio.gef.editor.observer");
for (IExtension extension : extensionPoint.getExtensions()) {
......@@ -158,8 +172,6 @@ public class AppContextMenuProvider extends ContextMenuProvider {
}
}
private boolean checkIncludeObserver(String observerID, BControl control) {
IExtensionPoint extensionPoint = registry
......@@ -212,23 +224,19 @@ public class AppContextMenuProvider extends ContextMenuProvider {
}
private void buildEventMenu(IMenuManager menu) {
private void buildEventMenu(IMenuManager menu, AbstractEditPart editPart) {
Object model = editPart.getModel();
if (model instanceof BControl && !(model instanceof Visualization)) {
MenuManager handleEventMenu = new MenuManager("Events",
BMotionStudioImage.getImageDescriptor(
BMotionEditorPlugin.PLUGIN_ID, "icons/icon_event.png"),
"eventMenu");
BMotionEditorPlugin.PLUGIN_ID,
"icons/icon_event.png"), "eventMenu");
menu.appendToGroup(GEFActionConstants.GROUP_ADD, handleEventMenu);
IStructuredSelection selection = (IStructuredSelection) BMotionEditorPlugin
.getActiveEditor().getEditorSite().getSelectionProvider()
.getSelection();
if ((selection.getFirstElement() instanceof BMSAbstractEditPart)
&& !(selection.getFirstElement() instanceof VisualizationPart)) {
BControl bcontrol = (BControl) ((BMSAbstractEditPart) selection
.getFirstElement()).getModel();
BControl bcontrol = (BControl) model;
// Has event
if (bcontrol.hasEvent(eventIDs[0])) {
......@@ -297,7 +305,6 @@ public class AppContextMenuProvider extends ContextMenuProvider {
}
}
}
}
......
......@@ -23,9 +23,7 @@ public class BMotionSelectionSynchronizer extends SelectionSynchronizer {
}
protected EditPart convert(EditPartViewer viewer, EditPart part) {
EditPart p = super.convert(viewer, part);
if (viewer instanceof ScrollingGraphicalViewer
|| viewer instanceof TreeViewer) {
Object model = part.getModel();
......@@ -42,9 +40,7 @@ public class BMotionSelectionSynchronizer extends SelectionSynchronizer {
return newPart;
}
}
return p;
}
}
......@@ -106,6 +106,7 @@ import de.bmotionstudio.gef.editor.model.BMotionRuler;
import de.bmotionstudio.gef.editor.model.BMotionRulerProvider;
import de.bmotionstudio.gef.editor.model.Visualization;
import de.bmotionstudio.gef.editor.part.BMSAbstractEditPart;
import de.bmotionstudio.gef.editor.part.BMSAbstractTreeEditPart;
import de.bmotionstudio.gef.editor.part.BMSEditPartFactory;
import de.bmotionstudio.gef.editor.part.BMSTreeEditPartFactory;
......@@ -162,9 +163,8 @@ public class BMotionStudioEditorPage extends GraphicalEditorWithFlyoutPalette {
Object selectedElement = ((IStructuredSelection) selection)
.getFirstElement();
if (!(selectedElement instanceof BMSAbstractEditPart))
return;
if (selectedElement instanceof BMSAbstractEditPart
|| selectedElement instanceof BMSAbstractTreeEditPart)
updateActions(getSelectionActions());
}
......@@ -544,7 +544,7 @@ public class BMotionStudioEditorPage extends GraphicalEditorWithFlyoutPalette {
getActionRegistry().registerAction(
new ToggleGridAction(getGraphicalViewer()));
ContextMenuProvider provider = new AppContextMenuProvider(viewer,
ContextMenuProvider provider = new BMSContextMenuProvider(viewer,
getActionRegistry());
viewer.setContextMenu(provider);
......@@ -682,7 +682,7 @@ public class BMotionStudioEditorPage extends GraphicalEditorWithFlyoutPalette {
protected void configureOutlineViewer() {
getViewer().setEditDomain(getEditDomain());
getViewer().setEditPartFactory(new BMSTreeEditPartFactory());
ContextMenuProvider provider = new AppContextMenuProvider(
ContextMenuProvider provider = new BMSContextMenuProvider(
getViewer(), getActionRegistry());
getViewer().setContextMenu(provider);
getViewer().setKeyHandler(getCommonKeyHandler());
......@@ -747,13 +747,6 @@ public class BMotionStudioEditorPage extends GraphicalEditorWithFlyoutPalette {
}
};
// collapseAllAction
// .setImageDescriptor(ImageDescriptor
// .createFromImage(PlatformUI
// .getWorkbench()
// .getSharedImages()
// .getImage(
// ISharedImages.IMG_ELCL_COLLAPSEALL)));
getSite().getActionBars().getMenuManager().add(expandAllAction);
getSite().getActionBars().getMenuManager().add(collapseAllAction);
......
......@@ -12,6 +12,7 @@ import org.eclipse.gef.palette.ToolEntry;
import de.bmotionstudio.gef.editor.model.BControl;
import de.bmotionstudio.gef.editor.model.Visualization;
import de.bmotionstudio.gef.editor.part.BMSAbstractEditPart;
import de.bmotionstudio.gef.editor.part.BMSAbstractTreeEditPart;
/**
* @author Lukas Ladenberger
......@@ -23,6 +24,8 @@ public interface IBControlService {
public BMSAbstractEditPart createEditPart();
public BMSAbstractTreeEditPart createTreeEditPart();
public ToolEntry createToolEntry(Visualization visualization,
IConfigurationElement configurationElement);
......
......@@ -53,11 +53,12 @@ public class CopyAction extends SelectionAction {
Object nextElement = it.next();
if (nextElement instanceof EditPart) {
EditPart ep = (EditPart) nextElement;
if (ep.getModel() instanceof BControl) {
BControl node = (BControl) ep.getModel();
if (!cmd.isCopyableControl(node))
return null;
if (cmd.isCopyableControl(node))
cmd.addElement(node);
}
}
}
return cmd;
......
......@@ -54,6 +54,7 @@ public class FitImageAction extends SelectionAction {
for (Object obj : selectedObjects) {
if (obj instanceof EditPart) {
EditPart part = (EditPart) obj;
if (part.getModel() instanceof BControl) {
BControl bcontrol = (BControl) part.getModel();
if (bcontrol
.getAttributeValue(AttributeConstants.ATTRIBUTE_IMAGE) != null) {
......@@ -61,6 +62,7 @@ public class FitImageAction extends SelectionAction {
}
}
}
}
return false;
}
......
......@@ -19,6 +19,7 @@ import de.bmotionstudio.gef.editor.BMotionStudioImage;
import de.bmotionstudio.gef.editor.command.RemoveObserverCommand;
import de.bmotionstudio.gef.editor.command.SetObserverCommand;
import de.bmotionstudio.gef.editor.model.BControl;
import de.bmotionstudio.gef.editor.model.ObserverRootVirtualTreeNode;
import de.bmotionstudio.gef.editor.observer.Observer;
import de.bmotionstudio.gef.editor.observer.ObserverWizard;
import de.prob.logging.Logger;
......@@ -27,10 +28,6 @@ public class OpenObserverAction extends SelectionAction {
private String className;
// private Observer oldObserver;
// private Observer currentObserver;
// private BControl actionControl;
public OpenObserverAction(IWorkbenchPart part) {
super(part);
setLazyEnablementCalculation(true);
......@@ -173,8 +170,15 @@ public class OpenObserverAction extends SelectionAction {
if ((objects.get(0) instanceof EditPart)) {
EditPart part = (EditPart) objects.get(0);
return (BControl) part.getModel();
BControl control = null;
if (part.getModel() instanceof ObserverRootVirtualTreeNode)
control = ((ObserverRootVirtualTreeNode) part.getModel())
.getControl();
else if (part.getModel() instanceof BControl)
control = (BControl) part.getModel();
return control;
}
return null;
}
......
......@@ -52,12 +52,13 @@ public class PasteAction extends SelectionAction {
Object nextElement = it.next();
if (nextElement instanceof EditPart) {
EditPart ep = (EditPart) nextElement;
if (ep.getModel() instanceof BControl) {
BControl node = (BControl) ep.getModel();
if (!cmd.isContainer(node))
return null;
if (cmd.isContainer(node))
cmd.addElement(node);
}
}
}
return cmd;
......
......@@ -21,7 +21,6 @@ import org.eclipse.ui.plugin.AbstractUIPlugin;
import de.bmotionstudio.gef.editor.AttributeConstants;
import de.bmotionstudio.gef.editor.BMotionEditorPlugin;
import de.bmotionstudio.gef.editor.internal.RenameWizard;
import de.bmotionstudio.gef.editor.model.BControl;
public class RenameAction extends SelectionAction {
......
......@@ -4,7 +4,7 @@
* This software is licenced under EPL 1.0 (http://www.eclipse.org/org/documents/epl-v10.html)
* */
package de.bmotionstudio.gef.editor.internal;
package de.bmotionstudio.gef.editor.action;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.jface.wizard.WizardPage;
......
......@@ -27,10 +27,11 @@ import de.bmotionstudio.gef.editor.model.BConnection;
import de.bmotionstudio.gef.editor.model.BControl;
import de.bmotionstudio.gef.editor.model.ObserverRootVirtualTreeNode;
import de.bmotionstudio.gef.editor.model.Visualization;
import de.bmotionstudio.gef.editor.observer.IObserverListener;
import de.bmotionstudio.gef.editor.observer.Observer;
public class BControlTreeEditPart extends BMSAbstractTreeEditPart implements
PropertyChangeListener {
PropertyChangeListener, IObserverListener {
public void propertyChange(final PropertyChangeEvent evt) {
if (evt.getPropertyName().equals(BControl.PROPERTY_ADD)
......@@ -84,6 +85,7 @@ public class BControlTreeEditPart extends BMSAbstractTreeEditPart implements
if (!isActive()) {
super.activate();
((BControl) getModel()).addPropertyChangeListener(this);
((BControl) getModel()).addObserverListener(this);
}
}
......@@ -91,6 +93,7 @@ public class BControlTreeEditPart extends BMSAbstractTreeEditPart implements
if (isActive()) {
super.deactivate();
((BControl) getModel()).removePropertyChangeListener(this);
((BControl) getModel()).removeObserverListener(this);
}
}
......@@ -127,4 +130,14 @@ public class BControlTreeEditPart extends BMSAbstractTreeEditPart implements
}
}
@Override
public void addedObserver(BControl control, Observer observer) {
refreshChildren();
}
@Override
public void removedObserver(BControl control) {
refreshChildren();
}
}
......@@ -6,9 +6,13 @@
package de.bmotionstudio.gef.editor.part;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.gef.EditPart;
import org.eclipse.gef.EditPartFactory;
import de.bmotionstudio.gef.editor.BMotionEditorPlugin;
import de.bmotionstudio.gef.editor.IBControlService;
import de.bmotionstudio.gef.editor.model.BControl;
import de.bmotionstudio.gef.editor.model.ObserverRootVirtualTreeNode;
import de.bmotionstudio.gef.editor.observer.Observer;
......@@ -20,7 +24,21 @@ public class BMSTreeEditPartFactory implements EditPartFactory {
BMSAbstractTreeEditPart part = null;
if (model instanceof BControl) {
part = new BControlTreeEditPart();
BControl control = (BControl) model;
try {
IConfigurationElement configElement = BMotionEditorPlugin
.getControlServices().get(control.getType());
if (configElement != null) {
IBControlService service = (IBControlService) configElement
.createExecutableExtension("service");
part = service.createTreeEditPart();
}
} catch (CoreException e) {
e.printStackTrace();
}
} else if (model instanceof Observer) {
part = new ObserverTreeEditPart();
} else if (model instanceof ObserverRootVirtualTreeNode) {
......
......@@ -5,7 +5,9 @@ import de.bmotionstudio.gef.editor.IBControlService;
import de.bmotionstudio.gef.editor.model.BControl;
import de.bmotionstudio.gef.editor.model.BTableCell;
import de.bmotionstudio.gef.editor.model.Visualization;
import de.bmotionstudio.gef.editor.part.BControlTreeEditPart;
import de.bmotionstudio.gef.editor.part.BMSAbstractEditPart;
import de.bmotionstudio.gef.editor.part.BMSAbstractTreeEditPart;
import de.bmotionstudio.gef.editor.part.BTableCellPart;
public class BTableCellService extends AbstractBControlService implements
......@@ -26,4 +28,13 @@ public class BTableCellService extends AbstractBControlService implements
return false;
}
@Override
public BMSAbstractTreeEditPart createTreeEditPart() {
return new BControlTreeEditPart() {
@Override
protected void createEditPolicies() {
}
};
}
}
......@@ -5,7 +5,9 @@ import de.bmotionstudio.gef.editor.IBControlService;
import de.bmotionstudio.gef.editor.model.BControl;
import de.bmotionstudio.gef.editor.model.BTableColumn;
import de.bmotionstudio.gef.editor.model.Visualization;
import de.bmotionstudio.gef.editor.part.BControlTreeEditPart;
import de.bmotionstudio.gef.editor.part.BMSAbstractEditPart;
import de.bmotionstudio.gef.editor.part.BMSAbstractTreeEditPart;
import de.bmotionstudio.gef.editor.part.BTableColumnPart;
public class BTableColumnService extends AbstractBControlService implements
......@@ -26,4 +28,13 @@ public class BTableColumnService extends AbstractBControlService implements
return false;
}
@Override
public BMSAbstractTreeEditPart createTreeEditPart() {
return new BControlTreeEditPart() {
@Override
protected void createEditPolicies() {
}
};
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment