diff --git a/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/GLE2.java b/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/GLE2.java new file mode 100755 index 000000000..8b868e33a --- /dev/null +++ b/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/GLE2.java @@ -0,0 +1,172 @@ +/* + * Copyright (C) 2009 The Android Open Source Project + * + * Licensed under the Eclipse Public License, Version 1.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.eclipse.org/org/documents/epl-v10.php + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.ide.eclipse.adt.internal.editors.layout; + +import com.android.ide.eclipse.adt.internal.editors.uimodel.UiDocumentNode; +import com.android.ide.eclipse.adt.internal.editors.uimodel.UiElementNode; +import com.android.ide.eclipse.adt.internal.resources.configurations.FolderConfiguration; + +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.gef.ui.parts.SelectionSynchronizer; +import org.eclipse.swt.dnd.Clipboard; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.ui.IEditorInput; +import org.eclipse.ui.IEditorSite; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.part.EditorPart; + +/** + * Graphical layout editor, version 2. + */ +public class GLE2 extends EditorPart implements IGraphicalLayoutEditor { + + /* + * Useful notes: + * To understand Drag'n'drop: + * http://www.eclipse.org/articles/Article-Workbench-DND/drag_drop.html + */ + + /** Reference to the layout editor */ + private final LayoutEditor mLayoutEditor; + + public GLE2(LayoutEditor layoutEditor) { + mLayoutEditor = layoutEditor; + setPartName("Graphical Layout"); + } + + // ------------------------------------ + // Methods overridden from base classes + //------------------------------------ + + /** + * Initializes the editor part with a site and input. + * {@inheritDoc} + */ + @Override + public void init(IEditorSite site, IEditorInput input) throws PartInitException { + setSite(site); + setInput(input); + } + + @Override + public void dispose() { + super.dispose(); + } + + @Override + public void doSave(IProgressMonitor monitor) { + // TODO Auto-generated method stub + + } + + @Override + public void doSaveAs() { + // TODO Auto-generated method stub + + } + + @Override + public boolean isDirty() { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean isSaveAsAllowed() { + // TODO Auto-generated method stub + return false; + } + + @Override + public void createPartControl(Composite parent) { + // TODO Auto-generated method stub + + } + + @Override + public void setFocus() { + // TODO Auto-generated method stub + + } + + public void activated() { + // TODO Auto-generated method stub + + } + + public void deactivated() { + // TODO Auto-generated method stub + + } + + public void editNewFile(FolderConfiguration configuration) { + // TODO Auto-generated method stub + + } + + public Clipboard getClipboard() { + // TODO Auto-generated method stub + return null; + } + + public LayoutEditor getLayoutEditor() { + // TODO Auto-generated method stub + return null; + } + + public UiDocumentNode getModel() { + // TODO Auto-generated method stub + return null; + } + + public SelectionSynchronizer getSelectionSynchronizer() { + // TODO Auto-generated method stub + return null; + } + + public void onXmlModelChanged() { + // TODO Auto-generated method stub + + } + + public void recomputeLayout() { + // TODO Auto-generated method stub + + } + + public void reloadEditor() { + // TODO Auto-generated method stub + + } + + public void reloadPalette() { + // TODO Auto-generated method stub + + } + + public void selectModel(UiElementNode uiNodeModel) { + // TODO Auto-generated method stub + + } + + public void reloadLayout(boolean codeChange, boolean rChange, + boolean resChange) { + // TODO Auto-generated method stub + + } + +} diff --git a/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/GraphicalLayoutEditor.java b/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/GraphicalLayoutEditor.java index 7d7ec5524..7cbd19c98 100644 --- a/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/GraphicalLayoutEditor.java +++ b/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/GraphicalLayoutEditor.java @@ -19,7 +19,6 @@ package com.android.ide.eclipse.adt.internal.editors.layout; import com.android.ide.eclipse.adt.AdtPlugin; import com.android.ide.eclipse.adt.internal.editors.IconFactory; import com.android.ide.eclipse.adt.internal.editors.layout.LayoutEditor.UiEditorActions; -import com.android.ide.eclipse.adt.internal.editors.layout.LayoutReloadMonitor.ILayoutReloadListener; import com.android.ide.eclipse.adt.internal.editors.layout.configuration.ConfigurationComposite; import com.android.ide.eclipse.adt.internal.editors.layout.configuration.ConfigurationComposite.IConfigListener; import com.android.ide.eclipse.adt.internal.editors.layout.descriptors.ViewElementDescriptor; @@ -71,6 +70,8 @@ import org.eclipse.gef.dnd.TemplateTransferDropTargetListener; import org.eclipse.gef.editparts.ScalableFreeformRootEditPart; import org.eclipse.gef.palette.PaletteRoot; import org.eclipse.gef.requests.CreationFactory; +import org.eclipse.gef.ui.parts.GraphicalEditorWithPalette; +import org.eclipse.gef.ui.parts.SelectionSynchronizer; import org.eclipse.jface.action.Action; import org.eclipse.jface.action.IMenuListener; import org.eclipse.jface.action.IMenuManager; @@ -111,8 +112,8 @@ import java.util.Map; *
* To understand Drag'n'drop: http://www.eclipse.org/articles/Article-Workbench-DND/drag_drop.html */ -public class GraphicalLayoutEditor extends AbstractGraphicalLayoutEditor - implements ILayoutReloadListener, IConfigListener { +public class GraphicalLayoutEditor extends GraphicalEditorWithPalette + implements IGraphicalLayoutEditor, IConfigListener { /** Reference to the layout editor */ @@ -233,6 +234,31 @@ public class GraphicalLayoutEditor extends AbstractGraphicalLayoutEditor super.dispose(); } + /** + * Returns the selection synchronizer object. + * The synchronizer can be used to sync the selection of 2 or more EditPartViewers. + * + * This is changed from protected to public so that the outline can use it. + * + * @return the synchronizer + */ + @Override + public SelectionSynchronizer getSelectionSynchronizer() { + return super.getSelectionSynchronizer(); + } + + /** + * Returns the edit domain. + * + * This is changed from protected to public so that the outline can use it. + * + * @return the edit domain + */ + @Override + public DefaultEditDomain getEditDomain() { + return super.getEditDomain(); + } + /* (non-Javadoc) * Creates the palette root. */ @@ -243,7 +269,6 @@ public class GraphicalLayoutEditor extends AbstractGraphicalLayoutEditor return mPaletteRoot; } - @Override public Clipboard getClipboard() { return mClipboard; } @@ -365,8 +390,7 @@ public class GraphicalLayoutEditor extends AbstractGraphicalLayoutEditor * * @param uiNodeModel The {@link UiElementNode} to select. */ - @Override - void selectModel(UiElementNode uiNodeModel) { + public void selectModel(UiElementNode uiNodeModel) { GraphicalViewer viewer = getGraphicalViewer(); // Give focus to the graphical viewer (in case the outline has it) @@ -384,7 +408,6 @@ public class GraphicalLayoutEditor extends AbstractGraphicalLayoutEditor // Local methods //-------------- - @Override public LayoutEditor getLayoutEditor() { return mLayoutEditor; } @@ -514,8 +537,7 @@ public class GraphicalLayoutEditor extends AbstractGraphicalLayoutEditor * Sets the UI for the edition of a new file. * @param configuration the configuration of the new file. */ - @Override - void editNewFile(FolderConfiguration configuration) { + public void editNewFile(FolderConfiguration configuration) { // update the configuration UI setConfiguration(configuration, true /*force*/); @@ -625,8 +647,7 @@ public class GraphicalLayoutEditor extends AbstractGraphicalLayoutEditor /** * Reloads this editor, by getting the new model from the {@link LayoutEditor}. */ - @Override - void reloadEditor() { + public void reloadEditor() { GraphicalViewer viewer = getGraphicalViewer(); viewer.setContents(getModel()); @@ -647,8 +668,7 @@ public class GraphicalLayoutEditor extends AbstractGraphicalLayoutEditor /** * Callback for XML model changed. Only update/recompute the layout if the editor is visible */ - @Override - void onXmlModelChanged() { + public void onXmlModelChanged() { if (mLayoutEditor.isGraphicalEditorActive()) { doXmlReload(true /* force */); recomputeLayout(); @@ -697,13 +717,11 @@ public class GraphicalLayoutEditor extends AbstractGraphicalLayoutEditor } - @Override - UiDocumentNode getModel() { + public UiDocumentNode getModel() { return mLayoutEditor.getUiRootNode(); } - @Override - void reloadPalette() { + public void reloadPalette() { PaletteFactory.createPaletteRoot(mPaletteRoot, mLayoutEditor.getTargetData()); } @@ -794,9 +812,8 @@ public class GraphicalLayoutEditor extends AbstractGraphicalLayoutEditor /** * Recomputes the layout with the help of layoutlib. */ - @Override @SuppressWarnings("deprecation") - void recomputeLayout() { + public void recomputeLayout() { doXmlReload(false /* force */); try { // check that the resource exists. If the file is opened but the project is closed @@ -1072,8 +1089,7 @@ public class GraphicalLayoutEditor extends AbstractGraphicalLayoutEditor /** * Responds to a page change that made the Graphical editor page the activated page. */ - @Override - void activated() { + public void activated() { if (mNeedsRecompute || mNeedsXmlReload) { recomputeLayout(); } @@ -1082,8 +1098,7 @@ public class GraphicalLayoutEditor extends AbstractGraphicalLayoutEditor /** * Responds to a page change that made the Graphical editor page the deactivated page */ - @Override - void deactivated() { + public void deactivated() { // nothing to be done here for now. } @@ -1093,11 +1108,11 @@ public class GraphicalLayoutEditor extends AbstractGraphicalLayoutEditor if (frameworkRes == null) { AdtPlugin.log(IStatus.ERROR, "Failed to get ProjectResource for the framework"); + } else { + // get the framework resource values based on the current config + mConfiguredFrameworkRes = frameworkRes.getConfiguredResources( + mConfigComposite.getCurrentConfig()); } - - // get the framework resource values based on the current config - mConfiguredFrameworkRes = frameworkRes.getConfiguredResources( - mConfigComposite.getCurrentConfig()); } return mConfiguredFrameworkRes; diff --git a/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/AbstractGraphicalLayoutEditor.java b/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/IGraphicalLayoutEditor.java old mode 100644 new mode 100755 similarity index 75% rename from tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/AbstractGraphicalLayoutEditor.java rename to tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/IGraphicalLayoutEditor.java index e8ccdab1b..8ed7b3d74 --- a/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/AbstractGraphicalLayoutEditor.java +++ b/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/IGraphicalLayoutEditor.java @@ -4,7 +4,7 @@ * Licensed under the Eclipse Public License, Version 1.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.eclipse.org/org/documents/epl-v10.php * * Unless required by applicable law or agreed to in writing, software @@ -22,17 +22,14 @@ import com.android.ide.eclipse.adt.internal.editors.uimodel.UiDocumentNode; import com.android.ide.eclipse.adt.internal.editors.uimodel.UiElementNode; import com.android.ide.eclipse.adt.internal.resources.configurations.FolderConfiguration; -import org.eclipse.gef.DefaultEditDomain; -import org.eclipse.gef.ui.parts.GraphicalEditorWithPalette; import org.eclipse.gef.ui.parts.SelectionSynchronizer; import org.eclipse.swt.dnd.Clipboard; -import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.IEditorPart; /** - * Abstract GraphicalLayoutEditor. + * Interface defining what {@link LayoutEditor} expects from a GraphicalLayoutEditor part. */ -/*package*/ abstract class AbstractGraphicalLayoutEditor extends GraphicalEditorWithPalette - implements IWorkbenchPart, ILayoutReloadListener { +/*package*/ interface IGraphicalLayoutEditor extends IEditorPart, ILayoutReloadListener { /** * Sets the UI for the edition of a new file. @@ -63,7 +60,7 @@ import org.eclipse.ui.IWorkbenchPart; /** * Used by LayoutEditor.UiEditorActions.selectUiNode to select a new UI Node * created by {@link ElementCreateCommand#execute()}. - * + * * @param uiNodeModel The {@link UiElementNode} to select. */ abstract void selectModel(UiElementNode uiNodeModel); @@ -71,27 +68,8 @@ import org.eclipse.ui.IWorkbenchPart; /** * Returns the selection synchronizer object. * The synchronizer can be used to sync the selection of 2 or more EditPartViewers. - * - * This is changed from protected to public so that the outline can use it. - * - * @return the synchronizer */ - @Override - public SelectionSynchronizer getSelectionSynchronizer() { - return super.getSelectionSynchronizer(); - } - - /** - * Returns the edit domain. - * - * This is changed from protected to public so that the outline can use it. - * - * @return the edit domain - */ - @Override - public DefaultEditDomain getEditDomain() { - return super.getEditDomain(); - } + abstract public SelectionSynchronizer getSelectionSynchronizer(); abstract void reloadPalette(); diff --git a/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/LayoutEditor.java b/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/LayoutEditor.java index 6226b7bc7..117625390 100644 --- a/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/LayoutEditor.java +++ b/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/LayoutEditor.java @@ -46,7 +46,7 @@ import org.eclipse.ui.views.properties.IPropertySheetPage; import org.w3c.dom.Document; /** - * Multi-page form editor for /res/layout XML files. + * Multi-page form editor for /res/layout XML files. */ public class LayoutEditor extends AndroidEditor implements IShowEditorInput, IPartListener { @@ -54,8 +54,8 @@ public class LayoutEditor extends AndroidEditor implements IShowEditorInput, IPa /** Root node of the UI element hierarchy */ private UiDocumentNode mUiRootNode; - - private AbstractGraphicalLayoutEditor mGraphicalEditor; + + private IGraphicalLayoutEditor mGraphicalEditor; private int mGraphicalEditorIndex; /** Implementation of the {@link IContentOutlinePage} for this editor */ private UiContentOutlinePage mOutline; @@ -63,7 +63,7 @@ public class LayoutEditor extends AndroidEditor implements IShowEditorInput, IPa private UiPropertySheetPage mPropertyPage; private UiEditorActions mUiEditorActions; - + /** * Creates the form editor for resources XML files. */ @@ -87,7 +87,7 @@ public class LayoutEditor extends AndroidEditor implements IShowEditorInput, IPa super.dispose(); } - + /** * Save the XML. * @@ -105,12 +105,12 @@ public class LayoutEditor extends AndroidEditor implements IShowEditorInput, IPa mGraphicalEditor.doSave(monitor); } } - + /** * Returns whether the "save as" operation is supported by this editor. * * Save-As is a valid operation for the ManifestEditor since it acts on a - * single source file. + * single source file. * * @see IEditorPart */ @@ -128,9 +128,15 @@ public class LayoutEditor extends AndroidEditor implements IShowEditorInput, IPa // The graphical layout editor is now enabled by default. // In case there's an issue we provide a way to disable it using an // env variable. - if (System.getenv("ANDROID_DISABLE_LAYOUT") == null) { + if (System.getenv("ANDROID_DISABLE_LAYOUT") == null) { //$NON-NLS-1$ if (mGraphicalEditor == null) { - mGraphicalEditor = new GraphicalLayoutEditor(this); + + if (System.getenv("USE_GLE2") != null) { //$NON-NLS-1$ //$NON-NLS-2$ + mGraphicalEditor = new GLE2(this); + } else { + mGraphicalEditor = new GraphicalLayoutEditor(this); + } + mGraphicalEditorIndex = addPage(mGraphicalEditor, getEditorInput()); setPageText(mGraphicalEditorIndex, mGraphicalEditor.getTitle()); } else { @@ -174,7 +180,7 @@ public class LayoutEditor extends AndroidEditor implements IShowEditorInput, IPa super.setInputWithNotify(input); handleNewInput(input); } - + /** * Called to replace the current {@link IEditorInput} with another one. * This is used when {@link MatchingStrategy} returnedtrue which means we're
@@ -183,10 +189,10 @@ public class LayoutEditor extends AndroidEditor implements IShowEditorInput, IPa
public void showEditorInput(IEditorInput editorInput) {
// save the current editor input.
doSave(new NullProgressMonitor());
-
+
// get the current page
int currentPage = getActivePage();
-
+
// remove the pages, except for the graphical editor, which will be dynamically adapted
// to the new model.
// page after the graphical editor:
@@ -198,10 +204,10 @@ public class LayoutEditor extends AndroidEditor implements IShowEditorInput, IPa
for (int i = mGraphicalEditorIndex - 1 ; i >= 0 ; i--) {
removePage(i);
}
-
+
// set the current input.
setInputWithNotify(editorInput);
-
+
// re-create or reload the pages with the default page shown as the previous active page.
createAndroidPages();
selectDefaultPage(Integer.toString(currentPage));
@@ -211,10 +217,10 @@ public class LayoutEditor extends AndroidEditor implements IShowEditorInput, IPa
mOutline.reloadModel();
}
}
-
+
/**
* Processes the new XML Model, which XML root node is given.
- *
+ *
* @param xml_doc The XML document, if available, or null if none exists.
*/
@Override
@@ -226,16 +232,16 @@ public class LayoutEditor extends AndroidEditor implements IShowEditorInput, IPa
// update the model first, since it is used by the viewers.
super.xmlModelChanged(xml_doc);
-
+
if (mGraphicalEditor != null) {
mGraphicalEditor.onXmlModelChanged();
}
-
+
if (mOutline != null) {
mOutline.reloadModel();
}
}
-
+
/* (non-java doc)
* Returns the IContentOutlinePage when asked for it.
*/
@@ -246,29 +252,33 @@ public class LayoutEditor extends AndroidEditor implements IShowEditorInput, IPa
// This fixes the case where a layout file is opened in XML view first and the outline
// gets stuck in the XML outline.
if (IContentOutlinePage.class == adapter && mGraphicalEditor != null) {
- if (mOutline == null) {
- mOutline = new UiContentOutlinePage(mGraphicalEditor, new TreeViewer());
+
+ if (mOutline == null && mGraphicalEditor instanceof GraphicalLayoutEditor) {
+ // TODO add support for GLE2
+ mOutline = new UiContentOutlinePage(
+ (GraphicalLayoutEditor) mGraphicalEditor,
+ new TreeViewer());
}
-
+
return mOutline;
}
-
+
if (IPropertySheetPage.class == adapter && mGraphicalEditor != null) {
if (mPropertyPage == null) {
mPropertyPage = new UiPropertySheetPage();
}
-
+
return mPropertyPage;
}
// return default
return super.getAdapter(adapter);
}
-
+
@Override
protected void pageChange(int newPageIndex) {
super.pageChange(newPageIndex);
-
+
if (mGraphicalEditor != null) {
if (newPageIndex == mGraphicalEditorIndex) {
mGraphicalEditor.activated();
@@ -277,9 +287,9 @@ public class LayoutEditor extends AndroidEditor implements IShowEditorInput, IPa
}
}
}
-
+
// ----- IPartListener Methods ----
-
+
public void partActivated(IWorkbenchPart part) {
if (part == this) {
if (mGraphicalEditor != null) {
@@ -312,7 +322,7 @@ public class LayoutEditor extends AndroidEditor implements IShowEditorInput, IPa
EclipseUiHelper.showView(EclipseUiHelper.CONTENT_OUTLINE_VIEW_ID, false /* activate */);
EclipseUiHelper.showView(EclipseUiHelper.PROPERTY_SHEET_VIEW_ID, false /* activate */);
}
-
+
public class UiEditorActions extends UiActions {
@Override
@@ -331,16 +341,16 @@ public class LayoutEditor extends AndroidEditor implements IShowEditorInput, IPa
// Pass. There is nothing to commit before the XML is changed here.
}
}
-
+
public UiEditorActions getUiEditorActions() {
if (mUiEditorActions == null) {
mUiEditorActions = new UiEditorActions();
}
return mUiEditorActions;
}
-
+
// ---- Local Methods ----
-
+
/**
* Returns true if the Graphics editor page is visible. This must be
* called from the UI thread.
@@ -357,20 +367,20 @@ public class LayoutEditor extends AndroidEditor implements IShowEditorInput, IPa
}
return false;
- }
-
+ }
+
@Override
protected void initUiRootNode(boolean force) {
// The root UI node is always created, even if there's no corresponding XML node.
if (mUiRootNode == null || force) {
// get the target data from the opened file (and its project)
AndroidTargetData data = getTargetData();
-
+
Document doc = null;
if (mUiRootNode != null) {
doc = mUiRootNode.getXmlDocument();
}
-
+
DocumentDescriptor desc;
if (data == null) {
desc = new DocumentDescriptor("temp", null /*children*/);
@@ -385,18 +395,18 @@ public class LayoutEditor extends AndroidEditor implements IShowEditorInput, IPa
onDescriptorsChanged(doc);
}
}
-
+
private void onDescriptorsChanged(Document document) {
if (document != null) {
mUiRootNode.loadFromXmlNode(document);
} else {
mUiRootNode.reloadFromXmlNode(mUiRootNode.getXmlDocument());
}
-
+
if (mOutline != null) {
mOutline.reloadModel();
}
-
+
if (mGraphicalEditor != null) {
mGraphicalEditor.reloadEditor();
mGraphicalEditor.reloadPalette();
diff --git a/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/UiContentOutlinePage.java b/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/UiContentOutlinePage.java
index 62abd5f68..775f23b06 100644
--- a/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/UiContentOutlinePage.java
+++ b/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/UiContentOutlinePage.java
@@ -70,26 +70,26 @@ import java.util.List;
*/
class UiContentOutlinePage extends ContentOutlinePage {
- private AbstractGraphicalLayoutEditor mEditor;
-
+ private GraphicalLayoutEditor mEditor;
+
private Action mAddAction;
private Action mDeleteAction;
private Action mUpAction;
private Action mDownAction;
-
+
private UiOutlineActions mUiActions = new UiOutlineActions();
- public UiContentOutlinePage(AbstractGraphicalLayoutEditor editor, final EditPartViewer viewer) {
+ public UiContentOutlinePage(GraphicalLayoutEditor editor, final EditPartViewer viewer) {
super(viewer);
mEditor = editor;
IconFactory factory = IconFactory.getInstance();
-
+
mAddAction = new Action("Add...") {
@Override
public void run() {
List