From 8cf465a5e9796d295667dddb1d4652dc36775b6a Mon Sep 17 00:00:00 2001 From: Lukas Ladenberger <lukas.ladenberger@googlemail.com> Date: Thu, 13 Dec 2012 17:16:58 +0100 Subject: [PATCH] working on multiple view feature --- de.bmotionstudio.gef.editor/plugin.xml | 30 ++ .../gef/editor/BMSPaletteView.java | 99 ++++ .../gef/editor/BMotionStudioContributor.java | 127 ++--- .../gef/editor/BMotionStudioEditor.java | 507 +++++++++++------- .../gef/editor/BMotionStudioEditorPage.java | 46 +- .../gef/editor/VisualizationView.java | 109 ++++ .../gef/editor/figure/ShapeFigure.java | 9 +- .../StartVisualizationEditorHandler.java | 57 +- .../internal/VisualizationProgressBar.java | 3 +- .../gef/editor/library/DeleteItemsAction.java | 18 +- .../editor/library/ImportImagesAction.java | 96 ++-- .../editor/library/LibraryImageObject.java | 47 +- .../gef/editor/library/LibraryPage.java | 62 ++- .../gef/editor/property/ImageDialog.java | 135 +++-- 14 files changed, 838 insertions(+), 507 deletions(-) create mode 100644 de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMSPaletteView.java create mode 100644 de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/VisualizationView.java diff --git a/de.bmotionstudio.gef.editor/plugin.xml b/de.bmotionstudio.gef.editor/plugin.xml index f7e7118b..b477d525 100644 --- a/de.bmotionstudio.gef.editor/plugin.xml +++ b/de.bmotionstudio.gef.editor/plugin.xml @@ -61,6 +61,21 @@ name="Observer" restorable="true"> </view> + <view + allowMultiple="true" + category="de.bmotionstudio.views" + class="de.bmotionstudio.gef.editor.VisualizationView" + id="de.bmotionstudio.gef.editor.VisualizationView" + name="Visualization" + restorable="true"> + </view> + <view + category="de.bmotionstudio.views" + class="de.bmotionstudio.gef.editor.BMSPaletteView" + id="de.bmotionstudio.gef.editor.PaletteView" + name="Palette" + restorable="true"> + </view> </extension> <extension point="org.eclipse.ui.menus"> @@ -651,6 +666,21 @@ id="de.bmotionstudio.gef.editor.observer.SwitchCoordinates"> </observer> </control> + </include> + <include + language="CSP"> + <control + id="de.bmotionstudio.gef.editor.rectangle"> + <observer + id="de.bmotionstudio.gef.editor.observer.CSPEventObserver"> + </observer> + </control> + <control + id="de.bmotionstudio.gef.editor.tank"> + <observer + id="de.bmotionstudio.gef.editor.observer.CSPEventObserver"> + </observer> + </control> </include> </extension> </plugin> diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMSPaletteView.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMSPaletteView.java new file mode 100644 index 00000000..e5acfee7 --- /dev/null +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMSPaletteView.java @@ -0,0 +1,99 @@ +package de.bmotionstudio.gef.editor; + +import org.eclipse.draw2d.ColorConstants; +import org.eclipse.gef.EditDomain; +import org.eclipse.gef.ui.palette.PaletteViewer; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.FillLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.ui.IViewPart; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.part.IPage; +import org.eclipse.ui.part.MessagePage; +import org.eclipse.ui.part.Page; +import org.eclipse.ui.part.PageBook; +import org.eclipse.ui.part.PageBookView; + +public class BMSPaletteView extends PageBookView { + + // private PaletteViewer paletteViewer; + + @Override + protected IWorkbenchPart getBootstrapPart() { + IWorkbenchPage page = getSite().getPage(); + IViewPart view = page.findView(VisualizationView.ID); + if (view != null) + return view; + return null; + } + + @Override + protected PageRec doCreatePage(IWorkbenchPart part) { + if (part instanceof VisualizationView) { + BMSPaletteViewPage page = new BMSPaletteViewPage(); + initPage(page); + page.createControl(getPageBook()); + return new PageRec(part, page); + } + return null; + } + + @Override + public void partActivated(IWorkbenchPart part) { + super.partActivated(part); + } + + @Override + protected boolean isImportant(IWorkbenchPart part) { + return part instanceof VisualizationView; + } + + private class BMSPaletteViewPage extends Page { + + private Composite container; + + protected void createPaletteViewer(Composite parent) { + PaletteViewer viewer = new PaletteViewer(); + viewer.createControl(parent); + viewer.getControl().setBackground(ColorConstants.green); + EditDomain domain = new EditDomain(); + domain.setPaletteViewer(viewer); + } + + @Override + public void createControl(Composite parent) { + container = new Composite(parent, SWT.NONE); + container.setBackground(ColorConstants.red); + container.setLayout(new FillLayout()); + createPaletteViewer(container); + } + + @Override + public Control getControl() { + return container; + } + + @Override + public void setFocus() { + } + + } + + @Override + protected IPage createDefaultPage(PageBook book) { + MessagePage page = new MessagePage(); + initPage(page); + page.createControl(book); + page.setMessage("NA"); + return page; + } + + @Override + protected void doDestroyPage(IWorkbenchPart part, PageRec pageRecord) { + // TODO Auto-generated method stub + + } + +} diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionStudioContributor.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionStudioContributor.java index 5ad06980..1dd07823 100644 --- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionStudioContributor.java +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionStudioContributor.java @@ -7,63 +7,48 @@ package de.bmotionstudio.gef.editor; import org.eclipse.gef.ui.actions.ActionBarContributor; -import org.eclipse.gef.ui.actions.DeleteRetargetAction; -import org.eclipse.gef.ui.actions.GEFActionConstants; -import org.eclipse.gef.ui.actions.RedoRetargetAction; -import org.eclipse.gef.ui.actions.UndoRetargetAction; -import org.eclipse.gef.ui.actions.ZoomComboContributionItem; -import org.eclipse.gef.ui.actions.ZoomInRetargetAction; -import org.eclipse.gef.ui.actions.ZoomOutRetargetAction; -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.action.IContributionItem; import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.IToolBarManager; -import org.eclipse.jface.action.MenuManager; -import org.eclipse.jface.action.Separator; -import org.eclipse.ui.IEditorPart; -import org.eclipse.ui.IWorkbenchWindow; -import org.eclipse.ui.actions.ActionFactory; -import org.eclipse.ui.actions.RetargetAction; public class BMotionStudioContributor extends ActionBarContributor { @Override protected void buildActions() { - IWorkbenchWindow iww = getPage().getWorkbenchWindow(); - - addRetargetAction(new UndoRetargetAction()); - addRetargetAction(new RedoRetargetAction()); - - addRetargetAction(new DeleteRetargetAction()); - - addRetargetAction((RetargetAction) ActionFactory.COPY.create(iww)); - addRetargetAction((RetargetAction) ActionFactory.PASTE.create(iww)); - - addRetargetAction(new ZoomInRetargetAction()); - addRetargetAction(new ZoomOutRetargetAction()); - - addRetargetAction(new RetargetAction( - GEFActionConstants.TOGGLE_RULER_VISIBILITY, "Ruler", - IAction.AS_CHECK_BOX)); - - addRetargetAction(new RetargetAction( - GEFActionConstants.TOGGLE_GRID_VISIBILITY, "Grid", - IAction.AS_CHECK_BOX)); - - addRetargetAction(new RetargetAction( - GEFActionConstants.TOGGLE_SNAP_TO_GEOMETRY, "Snap to Geometry", - IAction.AS_CHECK_BOX)); + // IWorkbenchWindow iww = getPage().getWorkbenchWindow(); + // + // addRetargetAction(new UndoRetargetAction()); + // addRetargetAction(new RedoRetargetAction()); + // + // addRetargetAction(new DeleteRetargetAction()); + // + // addRetargetAction((RetargetAction) ActionFactory.COPY.create(iww)); + // addRetargetAction((RetargetAction) ActionFactory.PASTE.create(iww)); + // + // addRetargetAction(new ZoomInRetargetAction()); + // addRetargetAction(new ZoomOutRetargetAction()); + // + // addRetargetAction(new RetargetAction( + // GEFActionConstants.TOGGLE_RULER_VISIBILITY, "Ruler", + // IAction.AS_CHECK_BOX)); + // + // addRetargetAction(new RetargetAction( + // GEFActionConstants.TOGGLE_GRID_VISIBILITY, "Grid", + // IAction.AS_CHECK_BOX)); + // + // addRetargetAction(new RetargetAction( + // GEFActionConstants.TOGGLE_SNAP_TO_GEOMETRY, "Snap to Geometry", + // IAction.AS_CHECK_BOX)); } @Override public void contributeToToolBar(IToolBarManager toolBarManager) { - toolBarManager.add(getAction(ActionFactory.DELETE.getId())); - toolBarManager.add(getAction(ActionFactory.COPY.getId())); - toolBarManager.add(getAction(ActionFactory.PASTE.getId())); - toolBarManager.add(new Separator()); - toolBarManager.add(getAction(GEFActionConstants.ZOOM_IN)); - toolBarManager.add(getAction(GEFActionConstants.ZOOM_OUT)); - toolBarManager.add(new ZoomComboContributionItem(getPage())); +// toolBarManager.add(getAction(ActionFactory.DELETE.getId())); +// toolBarManager.add(getAction(ActionFactory.COPY.getId())); +// toolBarManager.add(getAction(ActionFactory.PASTE.getId())); +// toolBarManager.add(new Separator()); +// toolBarManager.add(getAction(GEFActionConstants.ZOOM_IN)); +// toolBarManager.add(getAction(GEFActionConstants.ZOOM_OUT)); +// toolBarManager.add(new ZoomComboContributionItem(getPage())); } @Override @@ -75,33 +60,33 @@ public class BMotionStudioContributor extends ActionBarContributor { super.contributeToMenu(menuManager); - IContributionItem bMenu = menuManager - .find("de.bmotionstudio.gef.editor.menu"); - if (bMenu != null) { - - IMenuManager bmotionMenu = (IMenuManager) bMenu; - MenuManager viewMenu = new MenuManager("Editor"); - viewMenu.add(getAction(GEFActionConstants.ZOOM_IN)); - viewMenu.add(getAction(GEFActionConstants.ZOOM_OUT)); - viewMenu.add(new Separator()); - viewMenu.add(getAction(GEFActionConstants.TOGGLE_RULER_VISIBILITY)); - viewMenu.add(getAction(GEFActionConstants.TOGGLE_GRID_VISIBILITY)); - viewMenu.add(getAction(GEFActionConstants.TOGGLE_SNAP_TO_GEOMETRY)); - bmotionMenu - .insertAfter( - "de.bmotionstudio.gef.editor.command.openBMotionStudioWebsite", - viewMenu); - - } + // IContributionItem bMenu = menuManager + // .find("de.bmotionstudio.gef.editor.menu"); + // if (bMenu != null) { + // + // IMenuManager bmotionMenu = (IMenuManager) bMenu; + // MenuManager viewMenu = new MenuManager("Editor"); + // viewMenu.add(getAction(GEFActionConstants.ZOOM_IN)); + // viewMenu.add(getAction(GEFActionConstants.ZOOM_OUT)); + // viewMenu.add(new Separator()); + // viewMenu.add(getAction(GEFActionConstants.TOGGLE_RULER_VISIBILITY)); + // viewMenu.add(getAction(GEFActionConstants.TOGGLE_GRID_VISIBILITY)); + // viewMenu.add(getAction(GEFActionConstants.TOGGLE_SNAP_TO_GEOMETRY)); + // bmotionMenu + // .insertAfter( + // "de.bmotionstudio.gef.editor.command.openBMotionStudioWebsite", + // viewMenu); + + // } } - public void setActiveEditor(IEditorPart editor) { - if (editor instanceof BMotionStudioEditor) { - super.setActiveEditor(((BMotionStudioEditor) editor).getEditPage()); - } else { - super.setActiveEditor(editor); - } - } + // public void setActiveEditor(IEditorPart editor) { + // if (editor instanceof BMotionStudioEditor) { + // super.setActiveEditor(((BMotionStudioEditor) editor).getEditPage()); + // } else { + // super.setActiveEditor(editor); + // } + // } } diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionStudioEditor.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionStudioEditor.java index dd472559..734b7d0d 100644 --- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionStudioEditor.java +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionStudioEditor.java @@ -6,155 +6,143 @@ package de.bmotionstudio.gef.editor; -import java.io.IOException; +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; import java.io.InputStream; -import java.util.ArrayList; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; +import java.util.HashMap; +import java.util.Map; import org.eclipse.core.resources.IFile; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.swt.widgets.Display; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.core.runtime.Platform; +import org.eclipse.core.runtime.preferences.IPreferenceFilter; +import org.eclipse.core.runtime.preferences.IPreferencesService; +import org.eclipse.core.runtime.preferences.InstanceScope; +import org.eclipse.core.runtime.preferences.PreferenceFilterEntry; +import org.eclipse.gef.EditDomain; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.IEditorInput; -import org.eclipse.ui.IEditorPart; import org.eclipse.ui.IEditorSite; import org.eclipse.ui.IFileEditorInput; +import org.eclipse.ui.IPerspectiveDescriptor; +import org.eclipse.ui.IPerspectiveRegistry; import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.PartInitException; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.WorkbenchException; -import org.eclipse.ui.part.MultiPageEditorPart; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; -import org.xml.sax.SAXException; +import org.eclipse.ui.part.EditorPart; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.mapper.MapperWrapper; -import de.bmotionstudio.gef.editor.internal.BMSConverter512; import de.bmotionstudio.gef.editor.model.Visualization; -import de.prob.core.ILifecycleListener; import de.prob.logging.Logger; -public class BMotionStudioEditor extends MultiPageEditorPart implements - ILifecycleListener { +public class BMotionStudioEditor extends EditorPart { - private BMotionStudioEditorPage editPage; + // private BMotionStudioEditorPage editPage; - private BMotionStudioRunPage runPage; + // private BMotionStudioRunPage runPage; private Visualization visualization; - private Animation animation; - - private ArrayList<IRunPageListener> runPageListener = new ArrayList<IRunPageListener>(); - - @Override - protected void createPages() { - createEditPage(); - } - - private void createEditPage() { - editPage = new BMotionStudioEditorPage(getVisualization(), this); - try { - int index = addPage(editPage, getEditorInput()); - setPageText(index, "Edit"); - } catch (PartInitException e) { - e.printStackTrace(); - } - } - - public void createRunPage(Visualization visualization, Animation animation) { - StaticListenerRegistry.registerListener(this); - this.animation = animation; - - if (runPage != null) - runPage.dispose(); - - runPage = new BMotionStudioRunPage(visualization); - try { - int index = addPage(runPage, getEditorInput()); - setPageText(index, "Run"); - setActivePage(index); - fireRunPageCreatedListener(); - } catch (PartInitException e) { - } - } - - public void removeRunPage() { - fireRunPageRemovedListener(); - if (runPage != null) { - Display.getDefault().asyncExec(new Runnable() { - public void run() { - removePage(1); - } - }); - } - unregister(); - } - - private void fireRunPageCreatedListener() { - for (IRunPageListener listener : runPageListener) { - listener.runPageCreated(runPage); - } - } - - private void fireRunPageRemovedListener() { - for (IRunPageListener listener : runPageListener) { - listener.runPageRemoved(runPage); - } - } + private EditDomain editDomain; + + private Composite container; + + private IFile file; + + // private Animation animation; + + // private ArrayList<IRunPageListener> runPageListener = new + // ArrayList<IRunPageListener>(); + + // @Override + // protected void createPages() { + // createEditPage(); + // } + + // private void createEditPage() { + // editPage = new BMotionStudioEditorPage(getVisualization(), this); + // try { + // int index = addPage(editPage, getEditorInput()); + // setPageText(index, "Edit"); + // } catch (PartInitException e) { + // e.printStackTrace(); + // } + // } + + // public void createRunPage(Visualization visualization, Animation + // animation) { + // StaticListenerRegistry.registerListener(this); + // this.animation = animation; + // + // if (runPage != null) + // runPage.dispose(); + // + // runPage = new BMotionStudioRunPage(visualization); + // try { + // int index = addPage(runPage, getEditorInput()); + // setPageText(index, "Run"); + // setActivePage(index); + // fireRunPageCreatedListener(); + // } catch (PartInitException e) { + // } + // } + + // public void removeRunPage() { + // fireRunPageRemovedListener(); + // if (runPage != null) { + // Display.getDefault().asyncExec(new Runnable() { + // public void run() { + // removePage(1); + // } + // }); + // } + // unregister(); + // } + + // private void fireRunPageCreatedListener() { + // for (IRunPageListener listener : runPageListener) { + // listener.runPageCreated(runPage); + // } + // } + + // private void fireRunPageRemovedListener() { + // for (IRunPageListener listener : runPageListener) { + // listener.runPageRemoved(runPage); + // } + // } @Override public void dispose() { - unregister(); + // unregister(); super.dispose(); } - public Visualization getVisualization() { - return visualization; - } + // public Visualization getVisualization() { + // return visualization; + // } - public void setDirty(boolean dirty) { - editPage.setDirty(dirty); - } + // public void setDirty(boolean dirty) { + // editPage.setDirty(dirty); + // } - /** - * @see org.eclipse.ui.IEditorPart#init(IEditorSite, IEditorInput) - **/ @Override - public void init(IEditorSite iSite, IEditorInput iInput) + public void init(IEditorSite site, IEditorInput input) throws PartInitException { - super.init(iSite, iInput); - - IFile file = ((IFileEditorInput) iInput).getFile(); + file = ((IFileEditorInput) input).getFile(); try { - // ------------------------------------------------------- - - DocumentBuilderFactory dbFactory = DocumentBuilderFactory - .newInstance(); - DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); - Document doc = dBuilder.parse(file.getContents()); - NodeList nList = doc.getElementsByTagName("version"); - if (nList.item(0) != null) { - Element versionElement = (Element) nList.item(0); - String version = versionElement.getTextContent(); - if (version.equals("5.1.2")) { - new BMSConverter512(file); - } - } else { - new BMSConverter512(file); - } - - // ------------------------------------------------------- - InputStream inputStream = file.getContents(); XStream xstream = new XStream() { @@ -177,53 +165,92 @@ public class BMotionStudioEditor extends MultiPageEditorPart implements BMotionEditorPlugin.setAliases(xstream); visualization = (Visualization) xstream.fromXML(inputStream); - visualization.setProjectFile(((IFileEditorInput) getEditorInput()) - .getFile()); - // initLanguage(visualization); + visualization.setProjectFile(file); - } catch (SAXException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } catch (CoreException e) { - e.printStackTrace(); - } catch (ParserConfigurationException e) { - e.printStackTrace(); - } + editDomain = new EditDomain(); - } + // Check if a perspective for this visualization exists + IPerspectiveRegistry perspectiveRegistry = PlatformUI + .getWorkbench().getPerspectiveRegistry(); - @Override - public String getPartName() { - return visualization.getProjectFile().getName().replace(".bmso", "") - + " (" + getVisualization().getMachineName() + " - " - + getVisualization().getLanguage() + ")"; - } + String perspectiveId = "BMS_" + file.getName().replace(".bmso", ""); + IPerspectiveDescriptor perspective = perspectiveRegistry + .findPerspectiveWithId(perspectiveId); - @Override - public void doSave(final IProgressMonitor monitor) { - editPage.doSave(monitor); - } + // Yes --> switch to this perspective + if (perspective != null) { + switchPerspective(perspectiveId); + } else { - @Override - public void doSaveAs() { - // Nothing to do here, this is never allowed - throw new IllegalAccessError("No way to enter this method."); - } + // No --> create one + IWorkbenchWindow window = PlatformUI.getWorkbench() + .getActiveWorkbenchWindow(); + IWorkbenchPage page = window.getActivePage(); + if (page != null) { + IPerspectiveDescriptor personalPerspectiveDescriptor = perspectiveRegistry + .findPerspectiveWithId(perspectiveId); + if (personalPerspectiveDescriptor == null) { + IPerspectiveDescriptor originalPerspectiveDescriptor = perspectiveRegistry + .findPerspectiveWithId("de.bmotionstudio.perspective.run"); + switchPerspective(originalPerspectiveDescriptor.getId()); + personalPerspectiveDescriptor = perspectiveRegistry + .clonePerspective(perspectiveId, perspectiveId, + originalPerspectiveDescriptor); + // save the perspective + page.savePerspectiveAs(personalPerspectiveDescriptor); + exportPerspective(perspectiveId); + } + } - @Override - public boolean isSaveAsAllowed() { - return false; - } + } - @Override - protected void pageChange(int newPageIndex) { - String newPageString = getPageText(newPageIndex); - if (newPageString.equals("Run")) { - switchPerspective("de.bmotionstudio.perspective.run"); - } else { - switchPerspective("de.bmotionstudio.perspective.edit"); + // System.out.println("===> " + // + service.getRootNode().nodeExists( + // "/instance/org.eclipse.ui.workbench")); + // + // Preferences node = node; + // + // System.out.println(service.getRootNode().node("instance") + // .node("org.eclipse.ui.workbench").childrenNames().length); + // + // for (String s1 : service.getRootNode().childrenNames()) { + // + // Preferences node2 = service.getRootNode().node(s1); + // for (String s2 : node2.childrenNames()) + // for (String s3 : node2.node(s2) + // .childrenNames()) + // System.out.println(s3); + // } + + IWorkbenchWindow window = PlatformUI.getWorkbench() + .getActiveWorkbenchWindow(); + IWorkbenchPage activePage = window.getActivePage(); + VisualizationView visualizationView1 = (VisualizationView) activePage + .showView(VisualizationView.ID, "1", + IWorkbenchPage.VIEW_VISIBLE); + visualizationView1.initGraphicalViewer(editDomain, visualization); + // + // VisualizationView visualizationView2 = (VisualizationView) + // activePage + // .showView(VisualizationView.ID, "2", + // IWorkbenchPage.VIEW_VISIBLE); + // visualizationView2.initGraphicalViewer(editDomain, + // visualization); + // + // VisualizationView visualizationView3 = (VisualizationView) + // activePage + // .showView(VisualizationView.ID, "3", + // IWorkbenchPage.VIEW_VISIBLE); + // visualizationView3.initGraphicalViewer(editDomain, + // visualization); + + } catch (CoreException e) { + e.printStackTrace(); } + + setSite(site); + setInput(input); + } private void switchPerspective(String id) { @@ -237,55 +264,167 @@ public class BMotionStudioEditor extends MultiPageEditorPart implements } } - public BMotionStudioEditorPage getEditPage() { - return this.editPage; - } + // @Override + // public String getPartName() { + // return file.getName().replace(".bmso", "") + // + " (" + file.getMachineName() + " - " + // + getVisualization().getLanguage() + ")"; + // } - public BMotionStudioRunPage getRunPage() { - return this.runPage; - } + private void exportPerspective(final String perspectiveName) { - public void reset() { - removeRunPage(); - } + try { + + IPreferenceFilter[] transfers = null; + + // export all + transfers = new IPreferenceFilter[1]; + + // For export all create a preference filter that can export + // all nodes of the Instance and Configuration scopes + transfers[0] = new IPreferenceFilter() { + public String[] getScopes() { + return new String[] { InstanceScope.SCOPE }; + } + + public Map<String, PreferenceFilterEntry[]> getMapping( + String scope) { + Map<String, PreferenceFilterEntry[]> map = new HashMap<String, PreferenceFilterEntry[]>(); + map.put("org.eclipse.ui.workbench", + new PreferenceFilterEntry[] { new PreferenceFilterEntry( + perspectiveName + "_persp") }); + return map; + } + }; - private void unregister() { - getVisualization().setIsRunning(false); - StaticListenerRegistry.unregisterListener(this); - if (animation != null) { - animation.unregister(); + IFile pFile = file.getProject().getFile( + file.getName().replace(".bmso", ".bmsop")); + + String content = ""; + + if (!pFile.exists()) + pFile.create(new ByteArrayInputStream(content.getBytes()), + true, + new NullProgressMonitor()); + + File exportFile = new File(pFile.getLocationURI()); + FileOutputStream fos = new FileOutputStream(exportFile); + IPreferencesService service = Platform.getPreferencesService(); + service.exportPreferences(service.getRootNode(), transfers, fos); + + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (CoreException e) { + // TODO Auto-generated catch block + e.printStackTrace(); } + } - public IEditorPart getCurrentPage() { - return getActiveEditor(); + @Override + public void doSave(final IProgressMonitor monitor) { + // editPage.doSave(monitor); } - public void addRunPageListener(IRunPageListener listener) { - this.runPageListener.add(listener); + @Override + public void doSaveAs() { + // Nothing to do here, this is never allowed + throw new IllegalAccessError("No way to enter this method."); } - public void removeRunPageListener(IRunPageListener listener) { - this.runPageListener.remove(listener); + @Override + public boolean isSaveAsAllowed() { + return false; } - public double getZoomFactor() { - switch (getActivePage()) { - case 0: - return editPage.getRootEditPart().getZoomManager().getZoom(); - case 1: - return runPage.getRootEditPart().getZoomManager().getZoom(); - default: - return 1; - } + @Override + public boolean isDirty() { + // TODO Auto-generated method stub + return false; + } + + @Override + public void createPartControl(Composite parent) { + container = new Composite(parent, SWT.NONE); } @Override - protected void setActivePage(int pageIndex) { - super.setActivePage(pageIndex); - // TODO: This is a hack for fixing the selection bug in the editor! - getSite().setSelectionProvider( - editPage.getSite().getSelectionProvider()); + public void setFocus() { + // TODO Auto-generated method stub + } + // @Override + // protected void pageChange(int newPageIndex) { + // String newPageString = getPageText(newPageIndex); + // if (newPageString.equals("Run")) { + // switchPerspective("de.bmotionstudio.perspective.run"); + // } else { + // switchPerspective("de.bmotionstudio.perspective.edit"); + // } + // } + + // private void switchPerspective(String id) { + // IWorkbench workbench = PlatformUI.getWorkbench(); + // try { + // workbench.showPerspective(id, workbench.getActiveWorkbenchWindow()); + // } catch (WorkbenchException e) { + // Logger.notifyUser( + // "An error occured while trying to switch the perspective.", + // e); + // } + // } + + // public BMotionStudioEditorPage getEditPage() { + // return this.editPage; + // } + // + // public BMotionStudioRunPage getRunPage() { + // return this.runPage; + // } + + // public void reset() { + // removeRunPage(); + // } + // + // private void unregister() { + // getVisualization().setIsRunning(false); + // StaticListenerRegistry.unregisterListener(this); + // if (animation != null) { + // animation.unregister(); + // } + // } + + // public IEditorPart getCurrentPage() { + // return getActiveEditor(); + // } + // + // public void addRunPageListener(IRunPageListener listener) { + // this.runPageListener.add(listener); + // } + // + // public void removeRunPageListener(IRunPageListener listener) { + // this.runPageListener.remove(listener); + // } + + // public double getZoomFactor() { + // switch (getActivePage()) { + // case 0: + // return editPage.getRootEditPart().getZoomManager().getZoom(); + // case 1: + // return runPage.getRootEditPart().getZoomManager().getZoom(); + // default: + // return 1; + // } + // } + + // @Override + // protected void setActivePage(int pageIndex) { + // super.setActivePage(pageIndex); + // // TODO: This is a hack for fixing the selection bug in the editor! + // getSite().setSelectionProvider( + // editPage.getSite().getSelectionProvider()); + // } + } diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionStudioEditorPage.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionStudioEditorPage.java index 38ddeb19..dadbd30d 100644 --- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionStudioEditorPage.java +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionStudioEditorPage.java @@ -43,7 +43,6 @@ import org.eclipse.gef.SnapToGeometry; import org.eclipse.gef.SnapToGrid; import org.eclipse.gef.commands.CommandStack; import org.eclipse.gef.commands.CommandStackListener; -import org.eclipse.gef.dnd.TemplateTransferDragSourceListener; import org.eclipse.gef.editparts.GridLayer; import org.eclipse.gef.editparts.ScalableRootEditPart; import org.eclipse.gef.editparts.ZoomManager; @@ -57,11 +56,8 @@ import org.eclipse.gef.ui.actions.ToggleRulerVisibilityAction; import org.eclipse.gef.ui.actions.ToggleSnapToGeometryAction; import org.eclipse.gef.ui.actions.ZoomInAction; import org.eclipse.gef.ui.actions.ZoomOutAction; -import org.eclipse.gef.ui.palette.FlyoutPaletteComposite; -import org.eclipse.gef.ui.palette.PaletteViewer; -import org.eclipse.gef.ui.palette.PaletteViewerProvider; import org.eclipse.gef.ui.parts.ContentOutlinePage; -import org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette; +import org.eclipse.gef.ui.parts.GraphicalEditor; import org.eclipse.gef.ui.parts.GraphicalViewerKeyHandler; import org.eclipse.gef.ui.parts.ScrollingGraphicalViewer; import org.eclipse.gef.ui.parts.SelectionSynchronizer; @@ -110,7 +106,7 @@ import de.bmotionstudio.gef.editor.part.BMSAbstractTreeEditPart; import de.bmotionstudio.gef.editor.part.BMSEditPartFactory; import de.bmotionstudio.gef.editor.part.BMSTreeEditPartFactory; -public class BMotionStudioEditorPage extends GraphicalEditorWithFlyoutPalette { +public class BMotionStudioEditorPage extends GraphicalEditor { public final static String ID = "de.bmotionstudio.gef.editor"; @@ -185,7 +181,7 @@ public class BMotionStudioEditorPage extends GraphicalEditorWithFlyoutPalette { **/ protected void initializeGraphicalViewer() { - super.initializeGraphicalViewer(); + // super.initializeGraphicalViewer(); getGraphicalViewer().setContents(getVisualization()); @@ -196,25 +192,25 @@ public class BMotionStudioEditorPage extends GraphicalEditorWithFlyoutPalette { new AttributeTransferDropTargetListener(getGraphicalViewer(), getSite().getPart())); - getPalettePreferences().setPaletteState( - FlyoutPaletteComposite.STATE_PINNED_OPEN); + // getPalettePreferences().setPaletteState( + // FlyoutPaletteComposite.STATE_PINNED_OPEN); } - @Override - protected PaletteViewerProvider createPaletteViewerProvider() { - return new PaletteViewerProvider(getEditDomain()) { - protected void configurePaletteViewer(PaletteViewer viewer) { - super.configurePaletteViewer(viewer); - viewer.addDragSourceListener(new TemplateTransferDragSourceListener( - viewer)); - } - - protected void hookPaletteViewer(PaletteViewer viewer) { - super.hookPaletteViewer(viewer); - } - }; - } + // @Override + // protected PaletteViewerProvider createPaletteViewerProvider() { + // return new PaletteViewerProvider(getEditDomain()) { + // protected void configurePaletteViewer(PaletteViewer viewer) { + // super.configurePaletteViewer(viewer); + // viewer.addDragSourceListener(new TemplateTransferDragSourceListener( + // viewer)); + // } + // + // protected void hookPaletteViewer(PaletteViewer viewer) { + // super.hookPaletteViewer(viewer); + // } + // }; + // } /** * @see org.eclipse.ui.IEditorPart#isSaveAsAllowed() @@ -580,8 +576,8 @@ public class BMotionStudioEditorPage extends GraphicalEditorWithFlyoutPalette { getGraphicalViewer().setProperty(SnapToGrid.PROPERTY_GRID_VISIBLE, getVisualization().isGridEnabled()); - getPalettePreferences().setPaletteState( - FlyoutPaletteComposite.STATE_PINNED_OPEN); + // getPalettePreferences().setPaletteState( + // FlyoutPaletteComposite.STATE_PINNED_OPEN); } diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/VisualizationView.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/VisualizationView.java new file mode 100644 index 00000000..3841d93c --- /dev/null +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/VisualizationView.java @@ -0,0 +1,109 @@ +package de.bmotionstudio.gef.editor; + +import org.eclipse.gef.EditDomain; +import org.eclipse.gef.GraphicalViewer; +import org.eclipse.gef.commands.CommandStack; +import org.eclipse.gef.editparts.ScalableRootEditPart; +import org.eclipse.gef.editparts.ZoomManager; +import org.eclipse.gef.ui.parts.ScrollingGraphicalViewer; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.ui.part.ViewPart; +import org.eclipse.ui.views.properties.IPropertySheetPage; + +import de.bmotionstudio.gef.editor.model.Visualization; +import de.bmotionstudio.gef.editor.part.BMSEditPartFactory; + +public class VisualizationView extends ViewPart { + + public static String ID = "de.bmotionstudio.gef.editor.VisualizationView"; + + private EditDomain editDomain; + + private GraphicalViewer graphicalViewer; + + private Visualization visualization; + + public VisualizationView() { + } + + // public VisualizationView(EditDomain editDomain, Visualization + // visualization) { + // this.editDomain = editDomain; + // this.visualization = visualization; + // } + + public void initGraphicalViewer(EditDomain editDomain, + Visualization visualization) { + this.editDomain = editDomain; + this.visualization = visualization; + graphicalViewer.setEditDomain(editDomain); + graphicalViewer.setContents(visualization); + } + + @Override + public void createPartControl(Composite parent) { + graphicalViewer = new ScrollingGraphicalViewer(); + graphicalViewer.createControl(parent); + ScalableRootEditPart rootEditPart = new ScalableRootEditPart(); + rootEditPart.setViewer(graphicalViewer); + graphicalViewer.setRootEditPart(rootEditPart); + graphicalViewer.setEditPartFactory(new BMSEditPartFactory()); + } + + @Override + public Object getAdapter(@SuppressWarnings("rawtypes") Class type) { + + // Adapter for zoom manager + if (type == ZoomManager.class) + return ((ScalableRootEditPart) getGraphicalViewer() + .getRootEditPart()).getZoomManager(); +// if (type == IContentOutlinePage.class) +// return new BMotionOutlinePage(); + + // Adapter for property page + if (type == IPropertySheetPage.class) { + BMotionStudioPropertySheet page = new BMotionStudioPropertySheet(); + page.setRootEntry(new CustomSortPropertySheetEntry( + getCommandStack())); + return page; + } + + return super.getAdapter(type); + + } + + /** + * Returns the <code>CommandStack</code> of this editor's + * <code>EditDomain</code>. + * + * @return the <code>CommandStack</code> + */ + public CommandStack getCommandStack() { + return getEditDomain().getCommandStack(); + } + + /** + * Returns the edit domain. + * + * @return the edit domain + */ + protected EditDomain getEditDomain() { + return editDomain; + } + + /** + * Returns the graphical viewer. + * + * @return the graphical viewer + */ + protected GraphicalViewer getGraphicalViewer() { + return graphicalViewer; + } + + @Override + public void setFocus() { + // TODO Auto-generated method stub + + } + +} diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/figure/ShapeFigure.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/figure/ShapeFigure.java index 9ddf860f..1a98824c 100644 --- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/figure/ShapeFigure.java +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/figure/ShapeFigure.java @@ -25,8 +25,6 @@ import org.eclipse.swt.graphics.Pattern; import org.eclipse.swt.graphics.RGB; import org.eclipse.swt.widgets.Display; -import de.bmotionstudio.gef.editor.BMotionEditorPlugin; - public class ShapeFigure extends AbstractBMotionFigure { private int alpha; @@ -123,9 +121,10 @@ public class ShapeFigure extends AbstractBMotionFigure { } else if (fillType == FILL_TYPE_FILLED && img != null) { double zoom = 1; - if (BMotionEditorPlugin.getActiveEditor() != null) - zoom = BMotionEditorPlugin.getActiveEditor() - .getZoomFactor(); + // TODO Reimplement me! + // if (BMotionEditorPlugin.getActiveEditor() != null) + // zoom = BMotionEditorPlugin.getActiveEditor() + // .getZoomFactor(); ImageData d = img.getImageData().scaledTo( (int) (img.getBounds().width * zoom), diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/handler/StartVisualizationEditorHandler.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/handler/StartVisualizationEditorHandler.java index ebd89b02..9862dd8e 100644 --- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/handler/StartVisualizationEditorHandler.java +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/handler/StartVisualizationEditorHandler.java @@ -10,18 +10,12 @@ import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; import org.eclipse.core.commands.IHandler; -import org.eclipse.core.resources.IFile; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.swt.widgets.Display; -import org.eclipse.ui.IWorkbench; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.WorkbenchException; import de.bmotionstudio.gef.editor.BMotionEditorPlugin; import de.bmotionstudio.gef.editor.internal.VisualizationProgressBar; -import de.prob.core.Animator; -import de.prob.logging.Logger; public class StartVisualizationEditorHandler extends AbstractHandler implements IHandler { @@ -41,31 +35,32 @@ public class StartVisualizationEditorHandler extends AbstractHandler implements } } - IFile projectFile = BMotionEditorPlugin.getActiveEditor() - .getVisualization().getProjectFile(); - - // Get ProB Animator - Animator animator = Animator.getAnimator(); - - // Open Run Perspective - IWorkbench workbench = PlatformUI.getWorkbench(); - try { - workbench.showPerspective("de.bmotionstudio.perspective.run", - workbench.getActiveWorkbenchWindow()); - } catch (WorkbenchException e) { - Logger.notifyUser("Error opening BMotion Studio Run perspective.", - e); - } - - // First, kill old visualization (only if exists) - if (dpb != null) - dpb.kill(); - // Create a new visualization - dpb = new VisualizationProgressBar(Display.getDefault() - .getActiveShell(), animator, - BMotionEditorPlugin.getActiveEditor(), projectFile); - dpb.initGuage(); - dpb.open(); + // TODO Reimplement me! + // IFile projectFile = BMotionEditorPlugin.getActiveEditor() + // .getVisualization().getProjectFile(); + // + // // Get ProB Animator + // Animator animator = Animator.getAnimator(); + // + // // Open Run Perspective + // IWorkbench workbench = PlatformUI.getWorkbench(); + // try { + // workbench.showPerspective("de.bmotionstudio.perspective.run", + // workbench.getActiveWorkbenchWindow()); + // } catch (WorkbenchException e) { + // Logger.notifyUser("Error opening BMotion Studio Run perspective.", + // e); + // } + // + // // First, kill old visualization (only if exists) + // if (dpb != null) + // dpb.kill(); + // // Create a new visualization + // dpb = new VisualizationProgressBar(Display.getDefault() + // .getActiveShell(), animator, + // BMotionEditorPlugin.getActiveEditor(), projectFile); + // dpb.initGuage(); + // dpb.open(); return null; diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/internal/VisualizationProgressBar.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/internal/VisualizationProgressBar.java index 70ee9ce5..057a97d7 100644 --- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/internal/VisualizationProgressBar.java +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/internal/VisualizationProgressBar.java @@ -229,7 +229,8 @@ public class VisualizationProgressBar extends ProgressBarDialog { } private void createShell() { - activeEditor.createRunPage(visualization, animation); + // TODO Reimplement me! + // activeEditor.createRunPage(visualization, animation); } private ILanguageService getGenericLoadMachine(String language) { diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/library/DeleteItemsAction.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/library/DeleteItemsAction.java index 5ccb2146..fc65bc9e 100644 --- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/library/DeleteItemsAction.java +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/library/DeleteItemsAction.java @@ -6,9 +6,6 @@ package de.bmotionstudio.gef.editor.library; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.swt.widgets.Display; @@ -40,13 +37,14 @@ public class DeleteItemsAction extends AbstractLibraryAction { getPage().refresh(); - try { - getPage().getEditor().getVisualization().getProjectFile() - .getProject().getProject().refreshLocal( - IResource.DEPTH_ONE, new NullProgressMonitor()); - } catch (CoreException e) { - e.printStackTrace(); - } + // TODO Reimplement me! + // try { + // getPage().getEditor().getVisualization().getProjectFile() + // .getProject().getProject().refreshLocal( + // IResource.DEPTH_ONE, new NullProgressMonitor()); + // } catch (CoreException e) { + // e.printStackTrace(); + // } } diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/library/ImportImagesAction.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/library/ImportImagesAction.java index 24be5c85..2fc84ffe 100644 --- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/library/ImportImagesAction.java +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/library/ImportImagesAction.java @@ -6,19 +6,9 @@ package de.bmotionstudio.gef.editor.library; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IFolder; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.FileDialog; -import org.eclipse.swt.widgets.MessageBox; import de.bmotionstudio.gef.editor.BMotionStudioImage; @@ -50,49 +40,51 @@ public class ImportImagesAction extends AbstractLibraryAction { // Selected items String[] selectedFiles = fd.getFileNames(); + // TODO Reimplement me! // The project file - IFile pFile = getPage().getEditor().getVisualization().getProjectFile(); - - try { - - IProject project = pFile.getProject(); - IFolder folder = project.getFolder("images"); - NullProgressMonitor monitor = new NullProgressMonitor(); - - if (!folder.exists()) - folder.create(true, true, monitor); - - // Iterate the selected files - for (String fileName : selectedFiles) { - - File inputFile = new File(folderPath + File.separator - + fileName); - IFile newFile = folder.getFile(fileName); - FileInputStream fileInputStream = new FileInputStream(inputFile); - - if (!newFile.exists()) { - newFile.create(fileInputStream, true, - monitor); - } else { - // The file already exists; asks for confirmation - MessageBox mb = new MessageBox(fd.getParent(), - SWT.ICON_WARNING | SWT.YES | SWT.NO); - mb.setMessage(fileName - + " already exists. Do you want to replace it?"); - // If they click Yes, we're done and we drop out. If - // they click No, we redisplay the File Dialog - if (mb.open() == SWT.YES) - newFile.setContents(fileInputStream, true, false, - monitor); - } - - } - - } catch (CoreException e1) { - e1.printStackTrace(); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } + // IFile pFile = + // getPage().getEditor().getVisualization().getProjectFile(); + // + // try { + // + // IProject project = pFile.getProject(); + // IFolder folder = project.getFolder("images"); + // NullProgressMonitor monitor = new NullProgressMonitor(); + // + // if (!folder.exists()) + // folder.create(true, true, monitor); + // + // // Iterate the selected files + // for (String fileName : selectedFiles) { + // + // File inputFile = new File(folderPath + File.separator + // + fileName); + // IFile newFile = folder.getFile(fileName); + // FileInputStream fileInputStream = new FileInputStream(inputFile); + // + // if (!newFile.exists()) { + // newFile.create(fileInputStream, true, + // monitor); + // } else { + // // The file already exists; asks for confirmation + // MessageBox mb = new MessageBox(fd.getParent(), + // SWT.ICON_WARNING | SWT.YES | SWT.NO); + // mb.setMessage(fileName + // + " already exists. Do you want to replace it?"); + // // If they click Yes, we're done and we drop out. If + // // they click No, we redisplay the File Dialog + // if (mb.open() == SWT.YES) + // newFile.setContents(fileInputStream, true, false, + // monitor); + // } + // + // } + // + // } catch (CoreException e1) { + // e1.printStackTrace(); + // } catch (FileNotFoundException e) { + // e.printStackTrace(); + // } getPage().refresh(); diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/library/LibraryImageObject.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/library/LibraryImageObject.java index 3931e467..011683e0 100644 --- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/library/LibraryImageObject.java +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/library/LibraryImageObject.java @@ -6,12 +6,7 @@ package de.bmotionstudio.gef.editor.library; -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IFolder; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.widgets.Display; public class LibraryImageObject extends LibraryObject { @@ -22,30 +17,34 @@ public class LibraryImageObject extends LibraryObject { @Override public void delete(LibraryPage page) { - try { - IFolder imageFolder = page.getEditor().getVisualization() - .getProjectFile().getProject().getFolder("images"); - if (imageFolder.exists()) { - IFile file = imageFolder.getFile(getName()); - if (file.exists()) - file.delete(true, new NullProgressMonitor()); - } - } catch (CoreException e) { - e.printStackTrace(); - } + // TODO Reimplement me! + // try { + // IFolder imageFolder = page.getEditor().getVisualization() + // .getProjectFile().getProject().getFolder("images"); + // if (imageFolder.exists()) { + // IFile file = imageFolder.getFile(getName()); + // if (file.exists()) + // file.delete(true, new NullProgressMonitor()); + // } + // } catch (CoreException e) { + // e.printStackTrace(); + // } } @Override public Image getPreview(LibraryPage page) { - IFile pFile = page.getEditor().getVisualization().getProjectFile(); - if (pFile != null) { - String myPath = (pFile.getProject().getLocation() + "/images/" + getName()) - .replace("file:", ""); - return new Image(Display.getDefault(), myPath); - } else { - return null; - } + // TODO Reimplement me! + // IFile pFile = page.getEditor().getVisualization().getProjectFile(); + // if (pFile != null) { + // String myPath = (pFile.getProject().getLocation() + "/images/" + + // getName()) + // .replace("file:", ""); + // return new Image(Display.getDefault(), myPath); + // } else { + // return null; + // } + return null; } } diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/library/LibraryPage.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/library/LibraryPage.java index 77752772..18fa72be 100644 --- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/library/LibraryPage.java +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/library/LibraryPage.java @@ -6,8 +6,6 @@ package de.bmotionstudio.gef.editor.library; -import java.io.File; -import java.io.FilenameFilter; import java.util.ArrayList; import java.util.List; @@ -43,8 +41,6 @@ import org.eclipse.ui.part.IPageSite; import org.eclipse.ui.part.Page; import de.bmotionstudio.gef.editor.BMotionStudioEditor; -import de.bmotionstudio.gef.editor.BMotionStudioImage; -import de.bmotionstudio.gef.editor.EditorImageRegistry; public class LibraryPage extends Page { @@ -222,34 +218,36 @@ public class LibraryPage extends Page { if (editor != null) { - String basePath = (editor.getVisualization().getProjectFile() - .getProject().getLocation().toString()) - .replace("file:", ""); - File dir = new File(basePath + "/images"); - File[] fileList = dir.listFiles(new FilenameFilter() { - public boolean accept(final File dir, final String name) { - if (name.toLowerCase().endsWith(".jpg") - || name.toLowerCase().endsWith(".gif") - || name.toLowerCase().endsWith(".png")) { - return true; - } - return false; - } - }); - if (fileList != null) { - for (File f : fileList) { - Image img = null; - if (f.getName().toLowerCase().endsWith(".jpg")) { - img = BMotionStudioImage - .getImage(EditorImageRegistry.IMG_ICON_JPG); - } else { - img = BMotionStudioImage - .getImage(EditorImageRegistry.IMG_ICON_GIF); - } - tmpList.add(new LibraryImageObject(f.getName(), "image", - img)); - } - } + // TODO Reimplement me! + + // String basePath = (editor.getVisualization().getProjectFile() + // .getProject().getLocation().toString()) + // .replace("file:", ""); + // File dir = new File(basePath + "/images"); + // File[] fileList = dir.listFiles(new FilenameFilter() { + // public boolean accept(final File dir, final String name) { + // if (name.toLowerCase().endsWith(".jpg") + // || name.toLowerCase().endsWith(".gif") + // || name.toLowerCase().endsWith(".png")) { + // return true; + // } + // return false; + // } + // }); + // if (fileList != null) { + // for (File f : fileList) { + // Image img = null; + // if (f.getName().toLowerCase().endsWith(".jpg")) { + // img = BMotionStudioImage + // .getImage(EditorImageRegistry.IMG_ICON_JPG); + // } else { + // img = BMotionStudioImage + // .getImage(EditorImageRegistry.IMG_ICON_GIF); + // } + // tmpList.add(new LibraryImageObject(f.getName(), "image", + // img)); + // } + // } // TODO: Reimplement me!!! // Visualization vis = this.editor.getVisualization(); diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/property/ImageDialog.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/property/ImageDialog.java index 5fc1c992..7e3acaf3 100644 --- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/property/ImageDialog.java +++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/property/ImageDialog.java @@ -6,13 +6,6 @@ package de.bmotionstudio.gef.editor.property; -import java.io.File; -import java.io.FilenameFilter; -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.core.databinding.observable.list.WritableList; -import org.eclipse.core.resources.IFile; import org.eclipse.jface.databinding.viewers.ObservableListContentProvider; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.viewers.CellLabelProvider; @@ -33,13 +26,8 @@ import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Canvas; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; -import de.bmotionstudio.gef.editor.BMotionEditorPlugin; -import de.bmotionstudio.gef.editor.BMotionStudioImage; -import de.bmotionstudio.gef.editor.EditorImageRegistry; -import de.bmotionstudio.gef.editor.library.LibraryImageObject; import de.bmotionstudio.gef.editor.library.LibraryObject; public class ImageDialog extends Dialog { @@ -105,19 +93,20 @@ public class ImageDialog extends Dialog { previewImage = null; - if (obj != null) { - if (!obj.getName().equals("noimage")) { - IFile pFile = BMotionEditorPlugin.getActiveEditor() - .getVisualization().getProjectFile(); - if (pFile != null) { - String myPath = (pFile.getProject() - .getLocationURI() + "/images/" + obj - .getName()).replace("file:", ""); - previewImage = new Image(Display.getDefault(), - myPath); - } - } - } + // TODO Reimplement me! + // if (obj != null) { + // if (!obj.getName().equals("noimage")) { + // IFile pFile = BMotionEditorPlugin.getActiveEditor() + // .getVisualization().getProjectFile(); + // if (pFile != null) { + // String myPath = (pFile.getProject() + // .getLocationURI() + "/images/" + obj + // .getName()).replace("file:", ""); + // previewImage = new Image(Display.getDefault(), + // myPath); + // } + // } + // } previewCanvas.redraw(); @@ -154,58 +143,60 @@ public class ImageDialog extends Dialog { } }); - WritableList input = new WritableList(getLibraryObjects(), - LibraryObject.class); - tvLibrary.setInput(input); + // TODO Reimplement me! + // WritableList input = new WritableList(getLibraryObjects(), + // LibraryObject.class); + // tvLibrary.setInput(input); return container; } - private List<LibraryObject> getLibraryObjects() { - - List<LibraryObject> tmpList = new ArrayList<LibraryObject>(); - tmpList.add(new LibraryObject("noimage", "", BMotionStudioImage - .getImageDescriptor("org.eclipse.ui", - "$nl$/icons/full/etool16/delete_edit.gif") - .createImage())); - - if (BMotionEditorPlugin.getActiveEditor() != null) { - - String basePath = (BMotionEditorPlugin.getActiveEditor() - .getVisualization().getProjectFile().getProject() - .getLocation().toString()).replace("file:", ""); - File dir = new File(basePath + "/images"); - File[] fileList = dir.listFiles(new FilenameFilter() { - public boolean accept(final File dir, final String name) { - if (name.toLowerCase().endsWith(".jpg") - || name.toLowerCase().endsWith(".gif") - || name.toLowerCase().endsWith(".png")) { - return true; - } - return false; - } - }); - if (fileList != null) { - for (File f : fileList) { - Image img = null; - if (f.getName().toLowerCase().endsWith(".jpg")) { - img = BMotionStudioImage - .getImage(EditorImageRegistry.IMG_ICON_JPG); - } else { - img = BMotionStudioImage - .getImage(EditorImageRegistry.IMG_ICON_GIF); - } - tmpList.add(new LibraryImageObject(f.getName(), "image", - img)); - } - } - - } - - return tmpList; - - } + // TODO Reimplement me! + // private List<LibraryObject> getLibraryObjects() { + // + // List<LibraryObject> tmpList = new ArrayList<LibraryObject>(); + // tmpList.add(new LibraryObject("noimage", "", BMotionStudioImage + // .getImageDescriptor("org.eclipse.ui", + // "$nl$/icons/full/etool16/delete_edit.gif") + // .createImage())); + // + // if (BMotionEditorPlugin.getActiveEditor() != null) { + // + // String basePath = (BMotionEditorPlugin.getActiveEditor() + // .getVisualization().getProjectFile().getProject() + // .getLocation().toString()).replace("file:", ""); + // File dir = new File(basePath + "/images"); + // File[] fileList = dir.listFiles(new FilenameFilter() { + // public boolean accept(final File dir, final String name) { + // if (name.toLowerCase().endsWith(".jpg") + // || name.toLowerCase().endsWith(".gif") + // || name.toLowerCase().endsWith(".png")) { + // return true; + // } + // return false; + // } + // }); + // if (fileList != null) { + // for (File f : fileList) { + // Image img = null; + // if (f.getName().toLowerCase().endsWith(".jpg")) { + // img = BMotionStudioImage + // .getImage(EditorImageRegistry.IMG_ICON_JPG); + // } else { + // img = BMotionStudioImage + // .getImage(EditorImageRegistry.IMG_ICON_GIF); + // } + // tmpList.add(new LibraryImageObject(f.getName(), "image", + // img)); + // } + // } + // + // } + // + // return tmpList; + // + // } LibraryObject getSelectedObject() { IStructuredSelection sel = (IStructuredSelection) tvLibrary -- GitLab