Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 248932 Details for
Bug 453251
Enable Custom Flyout Palette
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Proposed patch
fix-453251.patch (text/plain), 7.58 KB, created by
William Collins
on 2014-11-25 18:13:05 EST
(
hide
)
Description:
Proposed patch
Filename:
MIME Type:
Creator:
William Collins
Created:
2014-11-25 18:13:05 EST
Size:
7.58 KB
patch
obsolete
>From dbc05780d3094d9a23d18c5abe538ccec118c9c1 Mon Sep 17 00:00:00 2001 >From: William Collins <punkhornsw@gmail.com> >Date: Tue, 25 Nov 2014 18:08:32 -0500 >Subject: [PATCH] [453251] Enable Custom Flyout Palette. > >--- > .../gef/ui/palette/FlyoutPaletteComposite.java | 5 +- > .../gef/ui/palette/FlyoutPaletteCompositeBase.java | 86 ++++++++++++++++++++++ > .../ui/parts/GraphicalEditorWithFlyoutPalette.java | 22 +++++- > 3 files changed, 107 insertions(+), 6 deletions(-) > create mode 100644 org.eclipse.gef/src/org/eclipse/gef/ui/palette/FlyoutPaletteCompositeBase.java > >diff --git a/org.eclipse.gef/src/org/eclipse/gef/ui/palette/FlyoutPaletteComposite.java b/org.eclipse.gef/src/org/eclipse/gef/ui/palette/FlyoutPaletteComposite.java >index 651baed..fa2e660 100644 >--- a/org.eclipse.gef/src/org/eclipse/gef/ui/palette/FlyoutPaletteComposite.java >+++ b/org.eclipse.gef/src/org/eclipse/gef/ui/palette/FlyoutPaletteComposite.java >@@ -104,7 +104,7 @@ import org.eclipse.gef.ui.views.palette.PaletteView; > * @author Pratik Shah > * @since 3.0 > */ >-public class FlyoutPaletteComposite extends Composite { >+public class FlyoutPaletteComposite extends FlyoutPaletteCompositeBase { > > private static final FontManager FONT_MGR = new FontManager(); > >@@ -137,9 +137,8 @@ public class FlyoutPaletteComposite extends Composite { > > private PropertyChangeSupport listeners = new PropertyChangeSupport(this); > private Composite paletteContainer; >- private PaletteViewer pViewer, externalViewer; >+ private PaletteViewer pViewer; > private IMemento capturedPaletteState; >- private Control graphicalControl; > private Composite sash; > private PaletteViewerProvider provider; > private FlyoutPreferences prefs; >diff --git a/org.eclipse.gef/src/org/eclipse/gef/ui/palette/FlyoutPaletteCompositeBase.java b/org.eclipse.gef/src/org/eclipse/gef/ui/palette/FlyoutPaletteCompositeBase.java >new file mode 100644 >index 0000000..b7ce185 >--- /dev/null >+++ b/org.eclipse.gef/src/org/eclipse/gef/ui/palette/FlyoutPaletteCompositeBase.java >@@ -0,0 +1,86 @@ >+/******************************************************************************* >+ * Copyright (c) Punkhorn Software >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * Punkhorn Software - initial API and implementation >+ *******************************************************************************/ >+package org.eclipse.gef.ui.palette; >+ >+import org.eclipse.swt.widgets.Composite; >+import org.eclipse.swt.widgets.Control; >+ >+import org.eclipse.ui.IMemento; >+ >+import org.eclipse.gef.GraphicalViewer; >+import org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette; >+ >+/** >+ * The FlyoutPaletteCompositeBase is a base class for a Composite class which >+ * shows a flyout palette alongside another control. The flyout palette >+ * auto-hides (thus maximizing space) when not in use, but can also be pinned >+ * open if so desired. It will only be visible when the PaletteView is not. >+ * >+ * <p> >+ * A custom palette can be implemented for >+ * {@link GraphicalEditorWithFlyoutPalette} by extending this class and >+ * overriding the method >+ * {@link GraphicalEditorWithFlyoutPalette#createPaletteComposite } to return the >+ * custom implementation. >+ * >+ * @author William Collins punkhornsw@gmail.com >+ * @since 3.10 >+ */ >+public class FlyoutPaletteCompositeBase extends Composite { >+ >+ protected PaletteViewer externalViewer; >+ >+ protected Control graphicalControl; >+ >+ public FlyoutPaletteCompositeBase(Composite parent, int style) { >+ super(parent, style); >+ } >+ >+ /** >+ * If an external palette viewer is provided, palette state (that is >+ * captured in {@link PaletteViewer#saveState(IMemento)} -- active tool, >+ * drawer expansion state, drawer pin state, etc.) will be maintained when >+ * switching between the two viewers. Providing an external viewer, although >+ * recommended, is optional. >+ * >+ * @param viewer >+ * The palette viewer used in the PaletteView >+ */ >+ public void setExternalViewer(PaletteViewer viewer) { >+ externalViewer = viewer; >+ } >+ >+ /** >+ * Sets the control along the side of which the palette is to be displayed. >+ * The given Control should be a child of this Composite. This method should >+ * only be invoked once. >+ * >+ * @param graphicalViewer >+ * the control of the graphical viewer; cannot be >+ * <code>null</code> >+ */ >+ public void setGraphicalControl(Control graphicalViewer) { >+ graphicalControl = graphicalViewer; >+ } >+ >+ /** >+ * This method hooks a DropTargetListener that collapses the flyout patette >+ * when the user drags something from the palette and moves the cursor to >+ * the primary viewer's control. If the auto-hide feature of the palette is >+ * to work properly when dragging, this method should be called before any >+ * other drop target listeners are added to the primary viewer. >+ * >+ * @param viewer >+ * the primary viewer >+ */ >+ public void hookDropTargetListener(GraphicalViewer viewer) { >+ } >+} >diff --git a/org.eclipse.gef/src/org/eclipse/gef/ui/parts/GraphicalEditorWithFlyoutPalette.java b/org.eclipse.gef/src/org/eclipse/gef/ui/parts/GraphicalEditorWithFlyoutPalette.java >index e45f7d6..7b09ca8 100644 >--- a/org.eclipse.gef/src/org/eclipse/gef/ui/parts/GraphicalEditorWithFlyoutPalette.java >+++ b/org.eclipse.gef/src/org/eclipse/gef/ui/parts/GraphicalEditorWithFlyoutPalette.java >@@ -19,6 +19,7 @@ import org.eclipse.gef.internal.InternalGEFPlugin; > import org.eclipse.gef.palette.PaletteRoot; > import org.eclipse.gef.ui.palette.FlyoutPaletteComposite; > import org.eclipse.gef.ui.palette.FlyoutPaletteComposite.FlyoutPreferences; >+import org.eclipse.gef.ui.palette.FlyoutPaletteCompositeBase; > import org.eclipse.gef.ui.palette.PaletteViewer; > import org.eclipse.gef.ui.palette.PaletteViewerProvider; > import org.eclipse.gef.ui.views.palette.PalettePage; >@@ -39,7 +40,7 @@ import org.eclipse.gef.ui.views.palette.PaletteViewerPage; > public abstract class GraphicalEditorWithFlyoutPalette extends GraphicalEditor { > > private PaletteViewerProvider provider; >- private FlyoutPaletteComposite splitter; >+ private FlyoutPaletteCompositeBase splitter; > private CustomPalettePage page; > > /** >@@ -50,6 +51,22 @@ public abstract class GraphicalEditorWithFlyoutPalette extends GraphicalEditor { > } > > /** >+ * Create a FlyoutPaletteComposite that will be used to show a flyout >+ * palette alongside the editor. Derived classes can override this method to >+ * provide their own custom palette. >+ * >+ * @param parent >+ * The parent composite hosting the FlyoutPaletteComposite. >+ * @return a newly-created {@link FlyoutPaletteComposite} >+ * @since 3.10 >+ */ >+ protected FlyoutPaletteCompositeBase createPaletteComposite(Composite parent) { >+ return new FlyoutPaletteComposite(parent, SWT.NONE, >+ getSite().getPage(), getPaletteViewerProvider(), >+ getPalettePreferences()); >+ } >+ >+ /** > * Creates a PaletteViewerProvider that will be used to create palettes for > * the view and the flyout. > * >@@ -70,8 +87,7 @@ public abstract class GraphicalEditorWithFlyoutPalette extends GraphicalEditor { > * @see GraphicalEditor#createPartControl(Composite) > */ > public void createPartControl(Composite parent) { >- splitter = new FlyoutPaletteComposite(parent, SWT.NONE, getSite() >- .getPage(), getPaletteViewerProvider(), getPalettePreferences()); >+ splitter = createPaletteComposite(parent); > super.createPartControl(splitter); > splitter.setGraphicalControl(getGraphicalControl()); > if (page != null) { >-- >2.1.1 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 453251
:
248932
|
249112