Math2mat
|
00001 00018 package m2m.frontend.dynamicview; 00019 00020 import org.eclipse.gef.EditDomain; 00021 import org.eclipse.gef.GraphicalViewer; 00022 import org.eclipse.gef.ui.parts.ScrollingGraphicalViewer; 00023 import org.eclipse.swt.events.DisposeEvent; 00024 import org.eclipse.swt.events.DisposeListener; 00025 import org.eclipse.swt.widgets.Composite; 00026 import org.eclipse.ui.IWorkbenchPage; 00027 import org.eclipse.ui.PlatformUI; 00028 import org.eclipse.ui.part.ViewPart; 00029 00030 import m2m.frontend.dynamicview.editPart.PropertyEditPartFactory; 00031 import m2m.frontend.view.Editor; 00032 00033 00034 public class MyGraphicalProperty extends ViewPart 00035 { 00039 public static final String ID = "dynamicview.mygraphicalproperty"; 00040 00041 private ScrollingGraphicalViewer graphicalViewer; 00042 00043 00044 /* (non-Javadoc) 00045 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite) 00046 */ 00047 @Override 00048 public void createPartControl(Composite parent) 00049 { 00050 Editor editor = (Editor)PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor(); 00051 00052 /* Initialisation of the graphicalViewer */ 00053 graphicalViewer = new ScrollingGraphicalViewer(); 00054 graphicalViewer.createControl(parent); 00055 graphicalViewer.setEditDomain(new EditDomain()); 00056 graphicalViewer.setEditPartFactory(new PropertyEditPartFactory()); 00057 graphicalViewer.setContents(editor.getModel().getSchema()); 00058 00059 graphicalViewer.getControl().addDisposeListener(new DisposeListener() { 00060 @Override 00061 public void widgetDisposed(DisposeEvent event) 00062 { 00063 IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); 00064 page.hideView(((MyGraphicalEditor)page.findView(MyGraphicalEditor.ID))); 00065 if((Editor)page.getActiveEditor() != null) 00066 ((Editor)page.getActiveEditor()).setModel(null); 00067 } 00068 }); 00069 } 00070 00071 00072 /* (non-Javadoc) 00073 * @see org.eclipse.ui.part.WorkbenchPart#setFocus() 00074 */ 00075 @Override 00076 public void setFocus() { 00077 } 00078 00079 00084 public GraphicalViewer getGraphicalViewer () 00085 { 00086 return this.graphicalViewer; 00087 } 00088 00089 00094 public void setGraphicalViewer(ScrollingGraphicalViewer graphicalViewer) 00095 { 00096 this.graphicalViewer = graphicalViewer; 00097 } 00098 }