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 89406 Details for
Bug 133385
palette UI look and feel changes
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
Patch for palette UI enhancements.
Patch_GEF_Feb11.txt (text/plain), 91.67 KB, created by
Cherie Revells
on 2008-02-11 10:22:50 EST
(
hide
)
Description:
Patch for palette UI enhancements.
Filename:
MIME Type:
Creator:
Cherie Revells
Created:
2008-02-11 10:22:50 EST
Size:
91.67 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.gef >Index: src/org/eclipse/gef/internal/InternalImages.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.gef/plugins/org.eclipse.gef/src/org/eclipse/gef/internal/InternalImages.java,v >retrieving revision 1.13 >diff -u -r1.13 InternalImages.java >--- src/org/eclipse/gef/internal/InternalImages.java 2 Jun 2005 19:22:39 -0000 1.13 >+++ src/org/eclipse/gef/internal/InternalImages.java 11 Feb 2008 15:13:47 -0000 >@@ -1,5 +1,5 @@ > /******************************************************************************* >- * Copyright (c) 2000, 2005 IBM Corporation and others. >+ * Copyright (c) 2000, 2008 IBM Corporation and others. > * 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 >@@ -10,6 +10,8 @@ > *******************************************************************************/ > package org.eclipse.gef.internal; > >+import org.eclipse.swt.graphics.Image; >+ > import org.eclipse.jface.resource.ImageDescriptor; > import org.eclipse.ui.ISharedImages; > import org.eclipse.ui.PlatformUI; >@@ -59,6 +61,26 @@ > public static final ImageDescriptor DESC_BLOCK_ALIGN_CENTER; > public static final ImageDescriptor DESC_BLOCK_ALIGN_RIGHT; > >+public static final ImageDescriptor DESC_PINNED; >+public static final ImageDescriptor DESC_UNPINNED; >+ >+public static final ImageDescriptor DESC_PALETTE; >+ >+/** >+ * Can be used to access the cached pinned image by using {@link #get(String)}. >+ */ >+public static final String IMG_PINNED = "icons/pinned.gif";//$NON-NLS-1$ >+ >+/** >+ * Can be used to access the cached pinned image by using {@link #get(String)}. >+ */ >+public static final String IMG_UNPINNED = "icons/unpinned.gif";//$NON-NLS-1$ >+ >+/** >+ * Can be used to access the cached pinned image by using {@link #get(String)}. >+ */ >+public static final String IMG_PALETTE = "icons/palette_view.gif";//$NON-NLS-1$ >+ > static { > DESC_BOLD = createDescriptor("icons/style_bold.gif"); //$NON-NLS-1$ > DESC_ITALIC = createDescriptor("icons/style_italic.gif"); //$NON-NLS-1$ >@@ -71,8 +93,8 @@ > DESC_BLOCK_ALIGN_CENTER = createDescriptor("icons/style_paragraph_center.gif"); //$NON-NLS-1$ > DESC_BLOCK_ALIGN_RIGHT = createDescriptor("icons/style_paragraph_right.gif"); //$NON-NLS-1$ > >- DESC_ZOOM_IN = createDescriptor("icons/zoomplus.gif"); //$NON-NLS-1$ >- DESC_ZOOM_OUT = createDescriptor("icons/zoomminus.gif"); //$NON-NLS-1$ >+ DESC_ZOOM_IN = createDescriptor("icons/zoom_in.gif"); //$NON-NLS-1$ >+ DESC_ZOOM_OUT = createDescriptor("icons/zoom_out.gif"); //$NON-NLS-1$ > > DESC_MATCH_WIDTH = createDescriptor("icons/matchwidth.gif"); //$NON-NLS-1$ > DESC_MATCH_HEIGHT = createDescriptor("icons/matchheight.gif"); //$NON-NLS-1$ >@@ -101,10 +123,45 @@ > > ICON_MATCH_WIDTH = createDescriptor("icons/sizehz.gif"); //$NON-NLS-1$ > ICON_MATCH_HEIGHT = createDescriptor("icons/sizevt.gif"); //$NON-NLS-1$ >+ >+ DESC_PINNED = createAndCache(IMG_PINNED); >+ DESC_UNPINNED = createAndCache(IMG_UNPINNED); >+ >+ DESC_PALETTE = createAndCache(IMG_PALETTE); >+ > } > > private static ImageDescriptor createDescriptor(String filename) { > return ImageDescriptor.createFromFile(InternalImages.class, filename); > } > >+/** >+ * Creates the image descriptor from the filename given and caches it in the >+ * plugin's image registry. >+ * >+ * @param imageName >+ * the full filename of the image >+ * @return the new image descriptor >+ */ >+private static ImageDescriptor createAndCache(String imageName) { >+ ImageDescriptor result = createDescriptor(imageName); >+ InternalGEFPlugin.getDefault().getImageRegistry().put(imageName, result); >+ return result; >+} >+ >+/** >+ * Gets an image from the image registry. This image should not be disposed >+ * of, that is handled in the image registry. The image descriptor must have >+ * previously been cached in the image registry. The cached images for the >+ * public image names defined in this file can be retrieved using this >+ * method. >+ * >+ * @param imageName >+ * the full filename of the image >+ * @return the image or null if it has not been cached in the registry >+ */ >+public static Image get(String imageName) { >+ return InternalGEFPlugin.getDefault().getImageRegistry().get(imageName); >+} >+ > } >Index: src/org/eclipse/gef/internal/ui/palette/editparts/PaletteStackEditPart.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.gef/plugins/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/PaletteStackEditPart.java,v >retrieving revision 1.16 >diff -u -r1.16 PaletteStackEditPart.java >--- src/org/eclipse/gef/internal/ui/palette/editparts/PaletteStackEditPart.java 21 Dec 2007 21:02:26 -0000 1.16 >+++ src/org/eclipse/gef/internal/ui/palette/editparts/PaletteStackEditPart.java 11 Feb 2008 15:13:47 -0000 >@@ -1,5 +1,5 @@ > /******************************************************************************* >- * Copyright (c) 2000, 2007 IBM Corporation and others. >+ * Copyright (c) 2000, 2008 IBM Corporation and others. > * 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 >@@ -12,6 +12,7 @@ > > import java.beans.PropertyChangeEvent; > import java.util.Iterator; >+import java.util.List; > > import org.eclipse.swt.events.MenuEvent; > import org.eclipse.swt.events.MenuListener; >@@ -23,6 +24,7 @@ > > import org.eclipse.draw2d.ActionEvent; > import org.eclipse.draw2d.ActionListener; >+import org.eclipse.draw2d.Border; > import org.eclipse.draw2d.BorderLayout; > import org.eclipse.draw2d.ButtonBorder; > import org.eclipse.draw2d.ButtonModel; >@@ -35,7 +37,6 @@ > import org.eclipse.draw2d.IFigure; > import org.eclipse.draw2d.StackLayout; > import org.eclipse.draw2d.geometry.Dimension; >-import org.eclipse.draw2d.geometry.Insets; > import org.eclipse.draw2d.geometry.Rectangle; > > import org.eclipse.gef.GraphicalEditPart; >@@ -61,14 +62,15 @@ > { > > private static final Dimension EMPTY_DIMENSION = new Dimension(0, 0); >+private static final Border BORDER_TOGGLE = new ButtonBorder(ButtonBorder.SCHEMES.TOOLBAR); > > // listen to changes of clickable tool figure > private ChangeListener clickableListener = new ChangeListener() { > public void handleStateChanged(ChangeEvent event) { > if (event.getPropertyName().equals(ButtonModel.MOUSEOVER_PROPERTY)) >- arrowFigure.getModel().setMouseOver(activeFigure.getModel().isMouseOver()); >+ getClickableFigure().getModel().setMouseOver(activeFigure.getModel().isMouseOver()); > else if (event.getPropertyName().equals(ButtonModel.ARMED_PROPERTY)) >- arrowFigure.getModel().setArmed(activeFigure.getModel().isArmed()); >+ getClickableFigure().getModel().setArmed(activeFigure.getModel().isArmed()); > } > }; > >@@ -76,9 +78,9 @@ > private ChangeListener clickableArrowListener = new ChangeListener() { > public void handleStateChanged(ChangeEvent event) { > if (event.getPropertyName().equals(ButtonModel.MOUSEOVER_PROPERTY)) >- activeFigure.getModel().setMouseOver(arrowFigure.getModel().isMouseOver()); >+ activeFigure.getModel().setMouseOver(getClickableFigure().getModel().isMouseOver()); > if (event.getPropertyName().equals(ButtonModel.ARMED_PROPERTY)) >- activeFigure.getModel().setArmed(arrowFigure.getModel().isArmed()); >+ activeFigure.getModel().setArmed(getClickableFigure().getModel().isArmed()); > } > }; > >@@ -93,16 +95,17 @@ > private PaletteListener paletteListener = new PaletteListener() { > public void activeToolChanged(PaletteViewer palette, ToolEntry tool) { > if (getStack().getChildren().contains(tool)) { >- if (!arrowFigure.getModel().isSelected()) >- arrowFigure.getModel().setSelected(true); >+ if (!getClickableFigure().getModel().isSelected()) >+ getClickableFigure().getModel().setSelected(true); > if (!getStack().getActiveEntry().equals(tool)) > getStack().setActiveEntry(tool); > } else >- arrowFigure.getModel().setSelected(false); >+ getClickableFigure().getModel().setSelected(false); > } > }; > > private Clickable activeFigure; >+private Clickable clickableFigure; > private RolloverArrow arrowFigure; > private Figure contentsFigure; > private Menu menu; >@@ -166,62 +169,70 @@ > * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#createFigure() > */ > public IFigure createFigure() { >- Figure figure = new Figure() { >- public Dimension getPreferredSize(int wHint, int hHint) { >- if (PaletteStackEditPart.this.getChildren().isEmpty()) >- return EMPTY_DIMENSION; >- return super.getPreferredSize(wHint, hHint); >- } >- >- public void paintBorder(Graphics graphics) { >- int layoutMode = getPreferenceSource().getLayoutSetting(); >- if (layoutMode == PaletteViewerPreferences.LAYOUT_LIST >- || layoutMode == PaletteViewerPreferences.LAYOUT_DETAILS) >- return; >- >- Rectangle rect = getBounds().getCopy(); >- >- graphics.translate(getLocation()); >- graphics.setBackgroundColor(ColorConstants.listForeground); >- >- // fill the corner arrow >- int[] points = new int[6]; >- >- points[0] = rect.width; >- points[1] = rect.height - 5; >- points[2] = rect.width; >- points[3] = rect.height; >- points[4] = rect.width - 5; >- points[5] = rect.height; >- >- graphics.fillPolygon(points); >- >- graphics.translate(getLocation().getNegated()); >- } >- }; >- figure.setLayoutManager(new BorderLayout()); >- >+ >+ IFigure stackFigure; >+ arrowFigure = new RolloverArrow(); >+ >+ if (isToolbarItem()) { >+ // the entire stack figure is clickable on the toolbar >+ stackFigure = new Clickable() { >+ public boolean hasFocus() { >+ return false; >+ } >+ public Dimension getPreferredSize(int wHint, int hHint) { >+ if (PaletteStackEditPart.this.getChildren().isEmpty()) >+ return EMPTY_DIMENSION; >+ return super.getPreferredSize(wHint, hHint); >+ } >+ }; >+ ((Clickable)stackFigure).setRolloverEnabled(true); >+ stackFigure.setBorder(BORDER_TOGGLE); >+ >+ // Set up the arrow figure. Disable the arrow figure so clicks go to the stack figure. >+ arrowFigure.setBackgroundColor(ColorConstants.black); >+ arrowFigure.setEnabled(false); >+ >+ clickableFigure = ((Clickable)stackFigure); >+ } else { >+ // the stack figure is not clickable on the palette so that drag and drop still works >+ stackFigure = new Figure() { >+ public Dimension getPreferredSize(int wHint, int hHint) { >+ if (PaletteStackEditPart.this.getChildren().isEmpty()) >+ return EMPTY_DIMENSION; >+ return super.getPreferredSize(wHint, hHint); >+ } >+ }; >+ >+ // Set up the arrow figure. >+ arrowFigure.setBackgroundColor(ColorConstants.WIDGET_DARK_SHADOW); >+ >+ clickableFigure = arrowFigure; >+ } >+ > contentsFigure = new Figure(); >- > StackLayout stackLayout = new StackLayout(); > // make it so the stack layout does not allow the invisible figures to contribute > // to its bounds > stackLayout.setObserveVisibility(true); > contentsFigure.setLayoutManager(stackLayout); > >- figure.add(contentsFigure, BorderLayout.CENTER); >- >- arrowFigure = new RolloverArrow(); >- >- arrowFigure.addChangeListener(clickableArrowListener); >- >- arrowFigure.addActionListener(actionListener); >+ stackFigure.add(contentsFigure); >+ stackFigure.add(arrowFigure); >+ >+ getClickableFigure().addChangeListener(clickableArrowListener); >+ getClickableFigure().addActionListener(actionListener); > >- int layoutMode = getPreferenceSource().getLayoutSetting(); >- if (layoutMode == PaletteViewerPreferences.LAYOUT_LIST >- || layoutMode == PaletteViewerPreferences.LAYOUT_DETAILS) >- figure.add(arrowFigure, BorderLayout.RIGHT); >- return figure; >+ return stackFigure; >+} >+ >+/** >+ * Returns the <code>Clickable</code> figure. This differs depending on >+ * whether or not this palette stack is on the palette toolbar. >+ * >+ * @return the <code>Clickable</code> figure >+ */ >+private Clickable getClickableFigure() { >+ return clickableFigure; > } > > /** >@@ -230,8 +241,8 @@ > public void deactivate() { > if (activeFigure != null) > activeFigure.removeChangeListener(clickableListener); >- arrowFigure.removeActionListener(actionListener); >- arrowFigure.removeChangeListener(clickableArrowListener); >+ getClickableFigure().removeActionListener(actionListener); >+ getClickableFigure().removeChangeListener(clickableArrowListener); > getPaletteViewer().removePaletteListener(paletteListener); > super.deactivate(); > } >@@ -288,7 +299,7 @@ > figureBounds.getBottomLeft().x, figureBounds.getBottomLeft().y); > > // remove feedback from the arrow Figure and children figures >- arrowFigure.getModel().setMouseOver(false); >+ getClickableFigure().getModel().setMouseOver(false); > eraseTargetFeedback(new Request(RequestConstants.REQ_SELECTION)); > > menu.setLocation(menuLocation); >@@ -324,13 +335,31 @@ > * @see org.eclipse.gef.editparts.AbstractEditPart#refreshVisuals() > */ > protected void refreshVisuals() { >- int layoutMode = getPreferenceSource().getLayoutSetting(); >- if (layoutMode == PaletteViewerPreferences.LAYOUT_LIST >- || layoutMode == PaletteViewerPreferences.LAYOUT_DETAILS) { >- if (!getFigure().getChildren().contains(arrowFigure)) >- getFigure().add(arrowFigure, BorderLayout.RIGHT); >- } else if (getFigure().getChildren().contains(arrowFigure)) >- getFigure().remove(arrowFigure); >+ int layoutMode = getLayoutSetting(); >+ if (layoutMode == PaletteViewerPreferences.LAYOUT_LIST >+ || layoutMode == PaletteViewerPreferences.LAYOUT_DETAILS) { >+ getFigure().setLayoutManager(new StackLayout() { >+ public void layout(IFigure figure) { >+ Rectangle r = figure.getClientArea(); >+ List children = figure.getChildren(); >+ IFigure child; >+ for (int i = 0; i < children.size(); i++) { >+ child = (IFigure)children.get(i); >+ if (child == arrowFigure) { >+ Rectangle.SINGLETON.setBounds(r); >+ Rectangle.SINGLETON.width = 11; >+ child.setBounds(Rectangle.SINGLETON); >+ } else { >+ child.setBounds(r); >+ } >+ } >+ } >+ }); >+ } else { >+ getFigure().setLayoutManager(new BorderLayout()); >+ getFigure().setConstraint(contentsFigure, BorderLayout.CENTER); >+ getFigure().setConstraint(arrowFigure, BorderLayout.RIGHT); >+ } > } > > /** >@@ -396,35 +425,14 @@ > { > > /** >- * Creates a new Clickable with a TriangleFigure as its child. >+ * Creates a new Clickable that paints a triangle figure. > */ > RolloverArrow() { >- super(new TriangleFigure()); >+ super(); > setRolloverEnabled(true); >- setBorder(new ButtonBorder(ButtonBorder.SCHEMES.TOOLBAR)); >+ setBorder(null); > setOpaque(false); >- setStyle(Clickable.STYLE_BUTTON); >-} >- >-/** >- * Draws a checkered pattern to emulate a toggle button that is in the selected state. >- * @param graphics The Graphics object used to paint >- */ >-protected void fillCheckeredRectangle(Graphics graphics) { >- // method taken from ToggleButton - because this figure *isn't* a toggle button, >- // but should match the checkered look of the tool's toggle button >- graphics.setBackgroundColor(ColorConstants.button); >- graphics.setForegroundColor(ColorConstants.buttonLightest); >- Rectangle rect = getClientArea(Rectangle.SINGLETON).crop(new Insets(1, 1, 0, 0)); >- graphics.fillRectangle(rect.x, rect.y, rect.width, rect.height); >- >- graphics.clipRect(rect); >- graphics.translate(rect.x, rect.y); >- int n = rect.width + rect.height; >- for (int i = 1; i < n; i += 2) { >- graphics.drawLine(0, i, i, 0); >- } >- graphics.restoreState(); >+ setPreferredSize(11, -1); > } > > /** >@@ -434,49 +442,21 @@ > return false; > } > >-/** >- * @see org.eclipse.draw2d.Figure#paintFigure(Graphics) >- */ >-protected void paintFigure(Graphics graphics) { >- if (isSelected() && isOpaque()) >- fillCheckeredRectangle(graphics); >- else >- super.paintFigure(graphics); >-} >- >-} >- >-class TriangleFigure >- extends Figure >-{ >- >-/** >- * Creates a new TriangleFigure with preferred size 7, -1 >- */ >-TriangleFigure() { >- super(); >- setPreferredSize(7, -1); >-} >- >-/** >- * @see org.eclipse.draw2d.IFigure#paint(org.eclipse.draw2d.Graphics) >- */ >-public void paint(Graphics graphics) { >+public void paintFigure(Graphics graphics) { > Rectangle rect = getBounds().getCopy(); > > graphics.translate(getLocation()); >- graphics.setBackgroundColor(ColorConstants.listForeground); > > // fill the arrow > int[] points = new int[8]; > >- points[0] = 1; >+ points[0] = 4; > points[1] = rect.height / 2; >- points[2] = 6; >+ points[2] = 9; > points[3] = rect.height / 2; >- points[4] = 3; >+ points[4] = 6; > points[5] = 3 + rect.height / 2; >- points[6] = 1; >+ points[6] = 4; > points[7] = rect.height / 2; > > graphics.fillPolygon(points); >Index: src/org/eclipse/gef/internal/ui/palette/editparts/GroupFigure.java >=================================================================== >RCS file: src/org/eclipse/gef/internal/ui/palette/editparts/GroupFigure.java >diff -N src/org/eclipse/gef/internal/ui/palette/editparts/GroupFigure.java >--- src/org/eclipse/gef/internal/ui/palette/editparts/GroupFigure.java 30 Mar 2005 21:27:03 -0000 1.9 >+++ /dev/null 1 Jan 1970 00:00:00 -0000 >@@ -1,27 +0,0 @@ >-/******************************************************************************* >- * Copyright (c) 2000, 2005 IBM Corporation and others. >- * 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: >- * IBM Corporation - initial API and implementation >- *******************************************************************************/ >-package org.eclipse.gef.internal.ui.palette.editparts; >- >-import org.eclipse.draw2d.Border; >-import org.eclipse.draw2d.Figure; >- >-/** >- * @author hudsonr >- */ >-public class GroupFigure extends Figure { >- >-private static final Border BORDER = new RaisedBorder(2, 2, 2, 2); >- >-{ >- setBorder(BORDER); >-} >- >-} >Index: src/org/eclipse/gef/internal/ui/palette/editparts/DrawerEditPart.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.gef/plugins/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/DrawerEditPart.java,v >retrieving revision 1.24 >diff -u -r1.24 DrawerEditPart.java >--- src/org/eclipse/gef/internal/ui/palette/editparts/DrawerEditPart.java 19 Oct 2007 19:47:06 -0000 1.24 >+++ src/org/eclipse/gef/internal/ui/palette/editparts/DrawerEditPart.java 11 Feb 2008 15:13:47 -0000 >@@ -1,5 +1,5 @@ > /******************************************************************************* >- * Copyright (c) 2000, 2007 IBM Corporation and others. >+ * Copyright (c) 2000, 2008 IBM Corporation and others. > * 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 >@@ -195,7 +195,7 @@ > setImageDescriptor(img); > > getDrawerFigure().setTitle(getPaletteEntry().getLabel()); >- getDrawerFigure().setLayoutMode(getPreferenceSource().getLayoutSetting()); >+ getDrawerFigure().setLayoutMode(getLayoutSetting()); > > boolean showPin = getPreferenceSource().getAutoCollapseSetting() > == PaletteViewerPreferences.COLLAPSE_AS_NEEDED; >Index: src/org/eclipse/gef/internal/ui/palette/editparts/GroupEditPart.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.gef/plugins/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/GroupEditPart.java,v >retrieving revision 1.9 >diff -u -r1.9 GroupEditPart.java >--- src/org/eclipse/gef/internal/ui/palette/editparts/GroupEditPart.java 19 Oct 2007 19:47:06 -0000 1.9 >+++ src/org/eclipse/gef/internal/ui/palette/editparts/GroupEditPart.java 11 Feb 2008 15:13:47 -0000 >@@ -1,5 +1,5 @@ > /******************************************************************************* >- * Copyright (c) 2000, 2007 IBM Corporation and others. >+ * Copyright (c) 2000, 2008 IBM Corporation and others. > * 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 >@@ -10,6 +10,7 @@ > *******************************************************************************/ > package org.eclipse.gef.internal.ui.palette.editparts; > >+import org.eclipse.draw2d.Figure; > import org.eclipse.draw2d.FlowLayout; > import org.eclipse.draw2d.IFigure; > import org.eclipse.draw2d.LayoutManager; >@@ -33,14 +34,14 @@ > * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#createFigure() > */ > public IFigure createFigure() { >- return new GroupFigure(); >+ return new Figure(); > } > > /** > * @see org.eclipse.gef.editparts.AbstractEditPart#refreshVisuals() > */ > protected void refreshVisuals() { >- int layout = getPreferenceSource().getLayoutSetting(); >+ int layout = getLayoutSetting(); > if (cachedLayout == layout) > return; > cachedLayout = layout; >Index: src/org/eclipse/gef/internal/ui/palette/editparts/TemplateEditPart.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.gef/plugins/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/TemplateEditPart.java,v >retrieving revision 1.15 >diff -u -r1.15 TemplateEditPart.java >--- src/org/eclipse/gef/internal/ui/palette/editparts/TemplateEditPart.java 19 Oct 2007 19:47:06 -0000 1.15 >+++ src/org/eclipse/gef/internal/ui/palette/editparts/TemplateEditPart.java 11 Feb 2008 15:13:48 -0000 >@@ -1,5 +1,5 @@ > /******************************************************************************* >- * Copyright (c) 2000, 2007 IBM Corporation and others. >+ * Copyright (c) 2000, 2008 IBM Corporation and others. > * 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 >@@ -110,8 +110,7 @@ > */ > protected String getToolTipText() { > String result = null; >- if (getPreferenceSource().getLayoutSetting() >- != PaletteViewerPreferences.LAYOUT_DETAILS) { >+ if (getLayoutSetting() != PaletteViewerPreferences.LAYOUT_DETAILS) { > result = super.getToolTipText(); > } > return result; >@@ -139,7 +138,7 @@ > setImageDescriptor(entry.getLargeIcon()); > else > setImageDescriptor(entry.getSmallIcon()); >- int layoutMode = getPreferenceSource().getLayoutSetting(); >+ int layoutMode = getLayoutSetting(); > fig.setLayoutMode(layoutMode); > if (layoutMode == PaletteViewerPreferences.LAYOUT_COLUMNS > || layoutMode == PaletteViewerPreferences.LAYOUT_DETAILS) >Index: src/org/eclipse/gef/internal/ui/palette/editparts/ToolEntryEditPart.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.gef/plugins/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/ToolEntryEditPart.java,v >retrieving revision 1.28 >diff -u -r1.28 ToolEntryEditPart.java >--- src/org/eclipse/gef/internal/ui/palette/editparts/ToolEntryEditPart.java 19 Oct 2007 19:47:06 -0000 1.28 >+++ src/org/eclipse/gef/internal/ui/palette/editparts/ToolEntryEditPart.java 11 Feb 2008 15:13:48 -0000 >@@ -1,5 +1,5 @@ > /******************************************************************************* >- * Copyright (c) 2000, 2007 IBM Corporation and others. >+ * Copyright (c) 2000, 2008 IBM Corporation and others. > * 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 >@@ -27,15 +27,20 @@ > import org.eclipse.draw2d.ButtonModel; > import org.eclipse.draw2d.Clickable; > import org.eclipse.draw2d.ColorConstants; >+import org.eclipse.draw2d.Graphics; > import org.eclipse.draw2d.IFigure; > import org.eclipse.draw2d.MarginBorder; >-import org.eclipse.draw2d.ToggleButton; >+import org.eclipse.draw2d.Toggle; >+import org.eclipse.draw2d.geometry.Insets; >+import org.eclipse.draw2d.geometry.Rectangle; > > import org.eclipse.gef.AccessibleEditPart; > import org.eclipse.gef.DragTracker; > import org.eclipse.gef.Request; > import org.eclipse.gef.RequestConstants; >+import org.eclipse.gef.internal.ui.palette.PaletteUtil; > import org.eclipse.gef.palette.PaletteEntry; >+import org.eclipse.gef.palette.PaletteStack; > import org.eclipse.gef.palette.ToolEntry; > import org.eclipse.gef.ui.palette.PaletteViewerPreferences; > import org.eclipse.gef.ui.palette.editparts.PaletteEditPart; >@@ -226,14 +231,25 @@ > }; > } > >-static final Border BORDER_TOGGLE = new ButtonBorder(ButtonBorder.SCHEMES.TOOLBAR); >+static final Border TOOLBAR_ITEM_BORDER = new ButtonBorder( >+ ButtonBorder.SCHEMES.TOOLBAR); > static final Border COLUMNS_BORDER = new MarginBorder(2, 0, 1, 0); >+static final Border LIST_BORDER = new MarginBorder(3, 16, 2, 0); >+static final Border ICON_BORDER = new MarginBorder(3, 3, 3, 3); >+ > public IFigure createFigure() { >- class InactiveToggleButton extends ToggleButton { >- InactiveToggleButton(IFigure contents) { >+ class InactiveToggleButton extends Toggle { >+ >+ InactiveToggleButton(IFigure contents) { > super(contents); > setOpaque(false); > setEnabled(true); >+ if (isToolbarItem() >+ && !PaletteStack.PALETTE_TYPE_STACK.equals(getPaletteEntry() >+ .getParent().getType())) { >+ setStyle(Clickable.STYLE_BUTTON | Clickable.STYLE_TOGGLE); >+ setBorder(TOOLBAR_ITEM_BORDER); >+ } > } > public IFigure findMouseEventTargetAt(int x, int y) { > return null; >@@ -245,14 +261,62 @@ > super.setEnabled(value); > if (isEnabled()) { > setRolloverEnabled(true); >- setBorder(BORDER_TOGGLE); >+ if (getFlag(STYLE_BUTTON)) { >+ setBorder(TOOLBAR_ITEM_BORDER); >+ } > setForegroundColor(null); > } else { >- setBorder(null); >+ if (getFlag(STYLE_BUTTON)) { >+ setBorder(null); >+ } > setRolloverEnabled(false); > setForegroundColor(ColorConstants.gray); > } > } >+ protected void paintFigure(Graphics graphics) { >+ super.paintFigure(graphics); >+ >+ if (!isToolbarItem() && isEnabled()) { >+ ButtonModel model = getModel(); >+ if (isRolloverEnabled() && !model.isMouseOver() && !model.isSelected()) >+ return; >+ >+ if (model.isSelected()) { >+ graphics.setBackgroundColor(PaletteUtil.getSelectedColor()); >+ } else { >+ graphics.setBackgroundColor(PaletteUtil.getHoverColor()); >+ } >+ graphics.fillRoundRectangle(getSelectionRectangle(), 3, 3); >+ } >+ } >+ >+ protected void paintBorder(Graphics graphics) { >+ // Overridden to draw the focus rectangle the same size as the hover >+ // and selection rectangles. >+ >+ if (getBorder() != null) >+ getBorder().paint(this, graphics, NO_INSETS); >+ if (hasFocus()) { >+ graphics.setForegroundColor(ColorConstants.black); >+ graphics.setBackgroundColor(ColorConstants.white); >+ graphics.drawFocus(getSelectionRectangle().getCropped( >+ new Insets(0, 0, 1, 1))); >+ } >+ } >+ >+ private Rectangle getSelectionRectangle() { >+ Rectangle rect = Rectangle.SINGLETON; >+ rect.setBounds(getBounds()); >+ int layoutMode = getLayoutSetting(); >+ if (layoutMode == PaletteViewerPreferences.LAYOUT_LIST >+ || layoutMode == PaletteViewerPreferences.LAYOUT_DETAILS) { >+ rect.width = customLabel.getPreferredSize().width + 17; >+ rect.x += 11; >+ } >+ rect.intersect(getBounds()); >+ return rect; >+ } >+ > } > > customLabel = new DetailedLabelFigure(); >@@ -307,8 +371,7 @@ > */ > protected String getToolTipText() { > String result = null; >- if (getPreferenceSource().getLayoutSetting() >- != PaletteViewerPreferences.LAYOUT_DETAILS) { >+ if (getLayoutSetting() != PaletteViewerPreferences.LAYOUT_DETAILS) { > result = super.getToolTipText(); > } > return result; >@@ -336,13 +399,20 @@ > setImageDescriptor(entry.getLargeIcon()); > else > setImageDescriptor(entry.getSmallIcon()); >- int layoutMode = getPreferenceSource().getLayoutSetting(); >+ int layoutMode = getLayoutSetting(); > customLabel.setLayoutMode(layoutMode); >- if (layoutMode == PaletteViewerPreferences.LAYOUT_COLUMNS >- || layoutMode == PaletteViewerPreferences.LAYOUT_DETAILS) >+ if (layoutMode == PaletteViewerPreferences.LAYOUT_COLUMNS) { > customLabel.setBorder(COLUMNS_BORDER); >- else >- customLabel.setBorder(null); >+ } else if (layoutMode == PaletteViewerPreferences.LAYOUT_LIST >+ || layoutMode == PaletteViewerPreferences.LAYOUT_DETAILS) { >+ customLabel.setBorder(LIST_BORDER); >+ } else if (layoutMode == PaletteViewerPreferences.LAYOUT_ICONS >+ && !isToolbarItem()) { >+ customLabel.setBorder(ICON_BORDER); >+ } else { >+ customLabel.setBorder(null); >+ } >+ > super.refreshVisuals(); > } > >Index: src/org/eclipse/gef/internal/ui/palette/editparts/SliderPaletteEditPart.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.gef/plugins/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/SliderPaletteEditPart.java,v >retrieving revision 1.13 >diff -u -r1.13 SliderPaletteEditPart.java >--- src/org/eclipse/gef/internal/ui/palette/editparts/SliderPaletteEditPart.java 19 Oct 2007 19:47:06 -0000 1.13 >+++ src/org/eclipse/gef/internal/ui/palette/editparts/SliderPaletteEditPart.java 11 Feb 2008 15:13:47 -0000 >@@ -1,5 +1,5 @@ > /******************************************************************************* >- * Copyright (c) 2000, 2007 IBM Corporation and others. >+ * Copyright (c) 2000, 2008 IBM Corporation and others. > * 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 >@@ -12,8 +12,12 @@ > > import org.eclipse.draw2d.ColorConstants; > import org.eclipse.draw2d.Figure; >+import org.eclipse.draw2d.FigureUtilities; >+import org.eclipse.draw2d.Graphics; > import org.eclipse.draw2d.IFigure; > import org.eclipse.draw2d.ToolbarLayout; >+import org.eclipse.draw2d.geometry.Dimension; >+import org.eclipse.draw2d.geometry.Rectangle; > > import org.eclipse.gef.palette.PaletteRoot; > import org.eclipse.gef.ui.palette.PaletteViewer; >@@ -25,18 +29,76 @@ > extends PaletteEditPart > { > >+/** >+ * The figure for the shadow that appears below the last palette drawer or item. >+ */ >+private static class DropShadowFigure >+ extends Figure { >+ >+private static int LAST_DRAWER_SHADOW_HEIGHT = 3; >+ >+public DropShadowFigure() { >+ super(); >+ setMinimumSize(new Dimension(0, 0)); >+} >+ >+public Dimension getPreferredSize(int wHint, int hHint) { >+ hHint = hHint == -1 ? LAST_DRAWER_SHADOW_HEIGHT >+ : Math.min(hHint, LAST_DRAWER_SHADOW_HEIGHT); >+ return new Dimension(wHint, hHint); >+} >+ >+protected void paintFigure(Graphics graphics) { >+ super.paintFigure(graphics); >+ Rectangle r = Rectangle.SINGLETON; >+ r.setBounds(getBounds()); >+ >+ graphics.setForegroundColor(ColorConstants.buttonDarker); >+ graphics.drawLine(r.getLocation(), r.getTopRight()); >+ >+ r.y++; >+ graphics.setForegroundColor(FigureUtilities.mixColors( >+ ColorConstants.WIDGET_BACKGROUND, ColorConstants.WIDGET_NORMAL_SHADOW, >+ 0.4)); >+ graphics.setBackgroundColor(FigureUtilities.mixColors( >+ ColorConstants.WIDGET_BACKGROUND, ColorConstants.WIDGET_NORMAL_SHADOW, >+ 0.7)); >+ graphics.fillGradient(r.x, r.y, r.width, LAST_DRAWER_SHADOW_HEIGHT - 1, >+ true); >+} >+} >+ > private PaletteAnimator controller; >+private IFigure paletteContentFigure; > > public SliderPaletteEditPart(PaletteRoot paletteRoot) { > super(paletteRoot); > } > > public IFigure createFigure() { >- Figure figure = new Figure(); >- figure.setOpaque(true); >- figure.setForegroundColor(ColorConstants.listForeground); >- figure.setBackgroundColor(ColorConstants.button); >- return figure; >+ paletteContentFigure = new Figure(); >+ paletteContentFigure.setLayoutManager(new PaletteToolbarLayout()); >+ paletteContentFigure.setOpaque(true); >+ paletteContentFigure.setBackgroundColor(ColorConstants.listBackground); >+ >+ Figure dropShadowFigure = new DropShadowFigure(); >+ >+ Figure wrapperFigure = new Figure(); >+ wrapperFigure.setLayoutManager(new ToolbarLayout()); >+ wrapperFigure.add(paletteContentFigure); >+ wrapperFigure.add(dropShadowFigure); >+ wrapperFigure.setOpaque(true); >+ wrapperFigure.setForegroundColor(ColorConstants.listForeground); >+ wrapperFigure.setBackgroundColor(ColorConstants.WIDGET_BACKGROUND); >+ >+ return wrapperFigure; >+} >+ >+public IFigure getContentPane() { >+ if (paletteContentFigure != null) { >+ return paletteContentFigure; >+ } >+ return super.getContentPane(); > } > > /** >@@ -55,8 +117,6 @@ > controller = new PaletteAnimator( > ((PaletteViewer)getViewer()).getPaletteViewerPreferences()); > getViewer().getEditPartRegistry().put(PaletteAnimator.class, controller); >- ToolbarLayout layout = new PaletteToolbarLayout(); >- getFigure().setLayoutManager(layout); > getFigure().addLayoutListener(controller); > } > >Index: src/org/eclipse/gef/internal/ui/palette/editparts/SeparatorEditPart.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.gef/plugins/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/SeparatorEditPart.java,v >retrieving revision 1.11 >diff -u -r1.11 SeparatorEditPart.java >--- src/org/eclipse/gef/internal/ui/palette/editparts/SeparatorEditPart.java 19 Oct 2007 19:47:06 -0000 1.11 >+++ src/org/eclipse/gef/internal/ui/palette/editparts/SeparatorEditPart.java 11 Feb 2008 15:13:47 -0000 >@@ -1,5 +1,5 @@ > /******************************************************************************* >- * Copyright (c) 2000, 2007 IBM Corporation and others. >+ * Copyright (c) 2000, 2008 IBM Corporation and others. > * 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 >@@ -75,10 +75,9 @@ > */ > protected void paintFigure(Graphics g) { > Rectangle r = getBounds().getCropped(CROP); >- if (getBackgroundColor() == ColorConstants.listBackground) { >- g.setForegroundColor(ColorConstants.buttonDarker); >- g.drawLine(r.getTopLeft(), r.getTopRight()); >- g.drawLine(r.getBottomLeft(), r.getBottomRight()); >+ if (getBackgroundColor().equals(ColorConstants.listBackground)) { >+ g.setForegroundColor(ColorConstants.WIDGET_NORMAL_SHADOW); >+ g.drawLine(r.getLeft(), r.getRight()); > } else { > g.setForegroundColor(ColorConstants.buttonDarker); > g.drawLine(r.getBottomLeft(), r.getTopLeft()); >Index: src/org/eclipse/gef/internal/ui/palette/editparts/DrawerFigure.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.gef/plugins/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/DrawerFigure.java,v >retrieving revision 1.40 >diff -u -r1.40 DrawerFigure.java >--- src/org/eclipse/gef/internal/ui/palette/editparts/DrawerFigure.java 19 Oct 2007 19:47:06 -0000 1.40 >+++ src/org/eclipse/gef/internal/ui/palette/editparts/DrawerFigure.java 11 Feb 2008 15:13:47 -0000 >@@ -1,5 +1,5 @@ > /******************************************************************************* >- * Copyright (c) 2000, 2007 IBM Corporation and others. >+ * Copyright (c) 2000, 2008 IBM Corporation and others. > * 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 >@@ -12,17 +12,15 @@ > > import java.util.List; > >+import org.eclipse.swt.SWT; > import org.eclipse.swt.graphics.Color; > import org.eclipse.swt.graphics.Image; > import org.eclipse.swt.widgets.Control; > import org.eclipse.swt.widgets.Display; > >-import org.eclipse.jface.resource.ImageDescriptor; >- > import org.eclipse.draw2d.Animation; > import org.eclipse.draw2d.Border; > import org.eclipse.draw2d.BorderLayout; >-import org.eclipse.draw2d.ButtonBorder; > import org.eclipse.draw2d.ButtonModel; > import org.eclipse.draw2d.ChangeEvent; > import org.eclipse.draw2d.ChangeListener; >@@ -44,12 +42,12 @@ > import org.eclipse.draw2d.SchemeBorder; > import org.eclipse.draw2d.ScrollPane; > import org.eclipse.draw2d.Toggle; >-import org.eclipse.draw2d.ToggleButton; > import org.eclipse.draw2d.ToolbarLayout; > import org.eclipse.draw2d.geometry.Dimension; >+import org.eclipse.draw2d.geometry.Insets; > import org.eclipse.draw2d.geometry.Rectangle; > >-import org.eclipse.gef.internal.Internal; >+import org.eclipse.gef.internal.InternalImages; > import org.eclipse.gef.ui.palette.PaletteMessages; > import org.eclipse.gef.ui.palette.PaletteViewerPreferences; > import org.eclipse.gef.ui.palette.editparts.PaletteToolbarLayout; >@@ -61,26 +59,17 @@ > extends Figure > { > >-/** Border constant, toolbar scheme **/ >-protected static final Border BUTTON_BORDER = new ButtonBorder( >- ButtonBorder.SCHEMES.TOOLBAR); >- > /** Foreground color constant **/ > protected static final Color FG_COLOR = FigureUtilities.mixColors( > ColorConstants.buttonDarker, ColorConstants.button); > >-/* >- * @TODO:Pratik >- * This image needs to go in SharedImages or InternalImages >- */ >-/** Pin image **/ >-public static final Image PIN = new Image(null, ImageDescriptor.createFromFile( >- Internal.class, "icons/pin_view.gif").getImageData()); //$NON-NLS-1$ >+private static final Color PIN_HOTSPOT_COLOR = FigureUtilities.mixColors( >+ ColorConstants.listBackground, ColorConstants.WIDGET_NORMAL_SHADOW, 0.60); > > /** Scrollpane border constant **/ > protected static final Border SCROLL_PANE_BORDER = new MarginBorder(2); > /** Title margin border constant **/ >-protected static final Border TITLE_MARGIN_BORDER = new MarginBorder(1, 1, 1, 0); >+protected static final Border TITLE_MARGIN_BORDER = new MarginBorder(4, 2, 2, 2); > /** Toggle button border constant**/ > protected static final Border TOGGLE_BUTTON_BORDER = new RaisedBorder(); > /** Tooltip border constant **/ >@@ -92,12 +81,156 @@ > > private boolean addedScrollpane = false; > private int layoutMode = -1; >-private ToggleButton pinFigure; >+private PinFigure pinFigure; > private ScrollPane scrollpane; > private boolean showPin = true, skipNextEvent; > private EditPartTipHelper tipHelper; > > /** >+ * This is the figure for the pinned and unpinned button. >+ */ >+private static class PinFigure extends Toggle { >+ >+ private static Label tooltip = new Label(PaletteMessages.TOOLTIP_PIN_FIGURE); >+ >+ public PinFigure() { >+ super(new ImageFigure(InternalImages.get(InternalImages.IMG_UNPINNED))); >+ setRolloverEnabled(true); >+ setRequestFocusEnabled(false); >+ setToolTip(tooltip); >+ setOpaque(false); >+ >+ addChangeListener(new ChangeListener() { >+ public void handleStateChanged(ChangeEvent e) { >+ if (e.getPropertyName().equals(ButtonModel.SELECTED_PROPERTY)) { >+ if (isSelected()) { >+ ((ImageFigure) (getChildren().get(0))).setImage(InternalImages >+ .get(InternalImages.IMG_PINNED)); >+ } else { >+ ((ImageFigure) (getChildren().get(0))).setImage(InternalImages >+ .get(InternalImages.IMG_UNPINNED)); >+ } >+ } >+ } >+ }); >+ } >+ >+ protected void paintFigure(Graphics graphics) { >+ super.paintFigure(graphics); >+ >+ ButtonModel model = getModel(); >+ if (isRolloverEnabled() && model.isMouseOver()) { >+ graphics.setBackgroundColor(PIN_HOTSPOT_COLOR); >+ graphics.fillRoundRectangle(getClientArea().getCopy().shrink(1, 1), 3, 3); >+ } >+ } >+ >+ public void setDrawerExpandedState(boolean expanded) { >+ setEnabled(expanded); >+ setToolTip(expanded ? tooltip : null); >+ } >+ >+} >+ >+/** >+ * This is the figure for the entire drawer label button. >+ */ >+private class CollapseToggle >+ extends Toggle { >+ >+public CollapseToggle(IFigure contents) { >+ super(contents); >+ setSelected(true); >+ setRequestFocusEnabled(true); >+ addChangeListener(new ChangeListener() { >+ >+ public void handleStateChanged(ChangeEvent e) { >+ if (e.getPropertyName().equals(ButtonModel.SELECTED_PROPERTY)) { >+ Animation.markBegin(); >+ handleExpandStateChanged(); >+ Animation.run(150); >+ } else if (e.getPropertyName().equals( >+ ButtonModel.MOUSEOVER_PROPERTY)) { >+ repaint(); >+ } >+ } >+ }); >+} >+ >+public IFigure getToolTip() { >+ return buildTooltip(); >+} >+ >+protected void paintFigure(Graphics g) { >+ super.paintFigure(g); >+ Rectangle r = Rectangle.SINGLETON; >+ r.setBounds(getBounds()); >+ >+ // draw top border of drawer figure >+ g.setForegroundColor(ColorConstants.buttonDarker); >+ g.drawLine(r.getTopLeft(), r.getTopRight()); >+ g.setForegroundColor(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE)); >+ g.drawLine(r.getTopLeft().getTranslated(0, 1), r.getTopRight() >+ .getTranslated(0, 1)); >+ r.crop(new Insets(2, 0, 0, 0)); >+ if (isExpanded()) { >+ g.setForegroundColor(FigureUtilities.mixColors(ColorConstants.button, >+ ColorConstants.buttonDarker, 0.65)); >+ g.drawLine(r.getLocation(), r.getTopRight()); >+ r.crop(new Insets(1, 0, 0, 0)); >+ } >+ >+ // draw bottom border of drawer figure >+ if (!isExpanded()) { >+ g.setForegroundColor(Display.getCurrent().getSystemColor( >+ SWT.COLOR_WHITE)); >+ g.drawLine(r.getBottomLeft().getTranslated(0, -1), r.getBottomRight() >+ .getTranslated(0, -1)); >+ r.crop(new Insets(0, 0, 1, 0)); >+ } >+ >+ // paint background/gradient >+ if (isExpanded()) { >+ g.setBackgroundColor(FigureUtilities.mixColors(ColorConstants.button, >+ ColorConstants.listBackground, 0.85)); >+ g.fillRectangle(r); >+ } else if (getModel().isMouseOver()) { >+ Color color1 = FigureUtilities.mixColors( >+ ColorConstants.WIDGET_BACKGROUND, ColorConstants.listBackground, >+ 0.6); >+ Color color2 = FigureUtilities.mixColors( >+ ColorConstants.WIDGET_BACKGROUND, >+ ColorConstants.WIDGET_NORMAL_SHADOW, 0.9); >+ Color color3 = FigureUtilities.mixColors( >+ ColorConstants.WIDGET_BACKGROUND, >+ ColorConstants.WIDGET_NORMAL_SHADOW, 0.95); >+ Color color4 = FigureUtilities.mixColors( >+ ColorConstants.WIDGET_BACKGROUND, ColorConstants.listBackground, >+ 0.9); >+ >+ g.setForegroundColor(color1); >+ g.setBackgroundColor(color2); >+ g.fillGradient(r.x, r.y, r.width, r.height - 4, true); >+ >+ g.setForegroundColor(color2); >+ g.setBackgroundColor(color3); >+ g.fillGradient(r.x, r.bottom() - 4, r.width, 2, true); >+ >+ g.setForegroundColor(color3); >+ g.setBackgroundColor(color4); >+ g.fillGradient(r.x, r.bottom() - 2, r.width, 2, true); >+ } else { >+ g.setForegroundColor(FigureUtilities.mixColors(ColorConstants.button, >+ ColorConstants.listBackground, 0.85)); >+ g.setBackgroundColor(FigureUtilities.mixColors(ColorConstants.button, >+ ColorConstants.buttonDarker, 0.45)); >+ g.fillGradient(r, true); >+ } >+ >+} >+} >+ >+/** > * Constructor > * > * @param control The Control of the LWS to which this Figure belongs (it is used to >@@ -128,44 +261,13 @@ > drawerLabel = new Label(); > drawerLabel.setLabelAlignment(Label.LEFT); > >- pinFigure = new ToggleButton(new ImageFigure(PIN)); >- pinFigure.setBorder(BUTTON_BORDER); >- pinFigure.setRolloverEnabled(true); >- pinFigure.setRequestFocusEnabled(false); >- pinFigure.setToolTip(new Label(PaletteMessages.TOOLTIP_PIN_FIGURE)); >+ pinFigure = new PinFigure(); > > title.add(pinFigure, BorderLayout.RIGHT); > title.add(drawerLabel, BorderLayout.CENTER); > >- collapseToggle = new Toggle(title) { >- /** >- * @see org.eclipse.draw2d.Figure#getToolTip() >- */ >- public IFigure getToolTip() { >- return buildTooltip(); >- } >- protected void paintFigure(Graphics g) { >- super.paintFigure(g); >- Rectangle r = Rectangle.SINGLETON; >- r.setBounds(getBounds()); >- r.width = Math.min(50, r.width); >- g.setForegroundColor(FG_COLOR); >- g.fillGradient(Rectangle.SINGLETON, false); >- } >+ collapseToggle = new CollapseToggle(title); > >- }; >- collapseToggle.setSelected(true); >- collapseToggle.setBorder(TOGGLE_BUTTON_BORDER); >- collapseToggle.setRequestFocusEnabled(true); >- collapseToggle.addChangeListener(new ChangeListener() { >- public void handleStateChanged(ChangeEvent e) { >- if (e.getPropertyName().equals(ButtonModel.SELECTED_PROPERTY)) { >- Animation.markBegin(); >- handleExpandStateChanged(); >- Animation.run(150); >- } >- } >- }); > /* > * @TODO:Pratik > * >@@ -271,7 +373,6 @@ > scrollpane.getVerticalScrollBar().setStepIncrement(20); > scrollpane.setLayoutManager(new OverlayScrollPaneLayout()); > scrollpane.setContents(new Figure()); >- scrollpane.getContents().setOpaque(true); > scrollpane.getContents().setBorder(SCROLL_PANE_BORDER); > } > >@@ -335,8 +436,10 @@ > remove(scrollpane); > } > >- if (pinFigure != null) >- pinFigure.setVisible(isExpanded() && showPin); >+ if (pinFigure != null) { >+ pinFigure.setVisible(showPin); >+ pinFigure.setDrawerExpandedState(isExpanded()); >+ } > } > > /** >Index: src/org/eclipse/gef/internal/ui/palette/editparts/PaletteScrollBar.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.gef/plugins/org.eclipse.gef/src/org/eclipse/gef/internal/ui/palette/editparts/PaletteScrollBar.java,v >retrieving revision 1.14 >diff -u -r1.14 PaletteScrollBar.java >--- src/org/eclipse/gef/internal/ui/palette/editparts/PaletteScrollBar.java 30 Mar 2005 21:27:03 -0000 1.14 >+++ src/org/eclipse/gef/internal/ui/palette/editparts/PaletteScrollBar.java 11 Feb 2008 15:13:47 -0000 >@@ -1,5 +1,5 @@ > /******************************************************************************* >- * Copyright (c) 2000, 2005 IBM Corporation and others. >+ * Copyright (c) 2000, 2008 IBM Corporation and others. > * 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 >@@ -10,56 +10,41 @@ > *******************************************************************************/ > package org.eclipse.gef.internal.ui.palette.editparts; > >-import org.eclipse.swt.graphics.Color; > import org.eclipse.swt.graphics.Image; > import org.eclipse.swt.graphics.ImageData; > import org.eclipse.swt.graphics.PaletteData; > import org.eclipse.swt.graphics.RGB; > import org.eclipse.swt.widgets.Display; > >-import org.eclipse.draw2d.ArrowButton; >-import org.eclipse.draw2d.Border; >-import org.eclipse.draw2d.ButtonBorder; > import org.eclipse.draw2d.Clickable; > import org.eclipse.draw2d.ColorConstants; >-import org.eclipse.draw2d.CompoundBorder; > import org.eclipse.draw2d.Graphics; > import org.eclipse.draw2d.IFigure; > import org.eclipse.draw2d.Label; >-import org.eclipse.draw2d.MarginBorder; > import org.eclipse.draw2d.RangeModel; > import org.eclipse.draw2d.ScrollBar; > import org.eclipse.draw2d.ScrollBarLayout; >+import org.eclipse.draw2d.Toggle; > import org.eclipse.draw2d.TreeSearch; > import org.eclipse.draw2d.geometry.Dimension; > import org.eclipse.draw2d.geometry.Insets; >+import org.eclipse.draw2d.geometry.Point; >+import org.eclipse.draw2d.geometry.PointList; > import org.eclipse.draw2d.geometry.Rectangle; > >+import org.eclipse.gef.internal.ui.palette.PaletteUtil; >+ > public final class PaletteScrollBar > extends ScrollBar > { > >-private static final ButtonBorder BORDER = >- new ButtonBorder(new ButtonBorder.ButtonScheme( >- new Color[] {ColorConstants.buttonLightest}, >- new Color[] {ColorConstants.buttonDarker}, >- new Color[] {ColorConstants.buttonDarker}, >- new Color[] {ColorConstants.buttonDarker} >- )); >- >-private static final Border CONTRAST = new CompoundBorder( >- new MarginBorder(1, 0, 0, 0) { >- public void paint(IFigure figure, Graphics graphics, Insets insets) { >- if (!((Clickable)figure).getModel().isMouseOver()) >- return; >- Rectangle r = getPaintRectangle(figure, insets); >- graphics.setForegroundColor(ColorConstants.button); >- graphics.drawLine(r.x, r.y, r.right(), r.y); >- } >- }, BORDER >-); >+private static final PointList OUTER_DOWN_TRIANGLE = new PointList(3); >+private static final PointList INNER_DOWN_TRIANGLE = new PointList(3); >+private static final PointList OUTER_UP_TRIANGLE = new PointList(3); >+private static final PointList INNER_UP_TRIANGLE = new PointList(3); > >-public static final int BUTTON_HEIGHT = 12; >+public static final int BUTTON_HEIGHT = 7; >+private static final int BUTTON_WIDTH = 76; > private static final int SCROLL_TIME = 200; > > private static final Image TRANSPARENCY; >@@ -67,12 +52,30 @@ > static { > Display display = Display.getCurrent(); > PaletteData pData = new PaletteData(0xFF, 0xFF00, 0xFF0000); >- RGB rgb = ColorConstants.button.getRGB(); >+ RGB rgb = ColorConstants.INFO_FOREGROUND.getRGB(); > int fillColor = pData.getPixel(rgb); > ImageData iData = new ImageData(1, 1, 24, pData); > iData.setPixel(0, 0, fillColor); >- iData.setAlpha(0, 0, 200); >+ iData.setAlpha(0, 0, 15); // 6% transparent -- 255 * 0.06 > TRANSPARENCY = new Image(display, iData); >+ >+ // TODO: Should I use the Button width here? >+ OUTER_DOWN_TRIANGLE.addPoint(new Point(34, 2)); >+ OUTER_DOWN_TRIANGLE.addPoint(new Point(38, 6)); >+ OUTER_DOWN_TRIANGLE.addPoint(new Point(42, 2)); >+ >+ INNER_DOWN_TRIANGLE.addPoint(new Point(35, 2)); >+ INNER_DOWN_TRIANGLE.addPoint(new Point(37, 5)); >+ INNER_DOWN_TRIANGLE.addPoint(new Point(41, 2)); >+ >+ OUTER_UP_TRIANGLE.addPoint(new Point(33, 5)); >+ OUTER_UP_TRIANGLE.addPoint(new Point(38, 0)); >+ OUTER_UP_TRIANGLE.addPoint(new Point(42, 5)); >+ >+ INNER_UP_TRIANGLE.addPoint(new Point(34, 5)); >+ INNER_UP_TRIANGLE.addPoint(new Point(38, 1)); >+ INNER_UP_TRIANGLE.addPoint(new Point(42, 5)); >+ > } > > protected Label downLabel; >@@ -88,30 +91,59 @@ > } > > protected Clickable createDefaultDownButton() { >- return createTransparentArrowButton(); >+ return createTransparentArrowButton(true); > } > > protected Clickable createDefaultUpButton() { >- return createTransparentArrowButton(); >+ return createTransparentArrowButton(false); > } > >-private ArrowButton createTransparentArrowButton() { >- ArrowButton button = new ArrowButton() { >+/** >+ * Creates the figure used for the scrollbar button. >+ * @param down true if the arrow should be pointing down; false, if it should be pointing up. >+ * @return a new <code>Toggle</code> figure for the scroll bar button >+ */ >+private Toggle createTransparentArrowButton(final boolean down) { >+ Toggle button = new Toggle() { > protected void paintFigure(Graphics g) { >+ // paint background > if (!getModel().isMouseOver()) > g.drawImage(TRANSPARENCY, new Rectangle(0, 0, 1, 1), getBounds()); >- else >- super.paintFigure(g); >+ else { >+ g.setBackgroundColor(getModel().isArmed() ? PaletteUtil >+ .getSelectedColor() >+ : PaletteUtil.getHoverColor()); >+ g.fillRectangle(getBounds()); >+ } >+ >+ // paint triangle >+ g.translate(getLocation()); >+ PointList outerPoints = transpose(down ? OUTER_DOWN_TRIANGLE : OUTER_UP_TRIANGLE); >+ PointList innerPoints = transpose(down ? INNER_DOWN_TRIANGLE : INNER_UP_TRIANGLE); >+ g.setBackgroundColor(ColorConstants.listBackground); >+ g.fillPolygon(outerPoints); >+ g.setBackgroundColor(ColorConstants.WIDGET_DARK_SHADOW); >+ g.fillPolygon(innerPoints); >+ g.translate(getLocation().getNegated()); > } > }; > button.setRolloverEnabled(true); >- button.setBorder(BORDER); > return button; > } > > /** >- * @see org.eclipse.draw2d.Figure#findFigureAt(int, int, TreeSearch) >+ * Transposes a list of points using the <code>transposer</code>. >+ * @param origPoints the original list of points >+ * @return a new list of transposed points > */ >+private PointList transpose(PointList origPoints) { >+ PointList transposedPoints = new PointList(origPoints.size()); >+ for (int i = 0; i < origPoints.size(); i++) { >+ transposedPoints.addPoint(transposer.t(origPoints.getPoint(i))); >+ } >+ return transposedPoints; >+} >+ > public IFigure findFigureAt(int x, int y, TreeSearch search) { > IFigure result = super.findFigureAt(x, y, search); > if (result != this) >@@ -119,9 +151,6 @@ > return null; > } > >-/** >- * @see org.eclipse.draw2d.Figure#getPreferredSize(int, int) >- */ > public Dimension getPreferredSize(int wHint, int hHint) { > return new Dimension(wHint, hHint); > } >@@ -131,17 +160,14 @@ > setLayoutManager(new ScrollBarLayout(transposer) { > protected Rectangle layoutButtons(ScrollBar scrollBar) { > Rectangle bounds = transposer.t(scrollBar.getClientArea()); >- Dimension buttonSize = new Dimension(bounds.width, BUTTON_HEIGHT); >+ Dimension buttonSize = new Dimension(BUTTON_WIDTH, BUTTON_HEIGHT); > >- getButtonUp().setBounds(transposer.t( >- new Rectangle(bounds.getTopLeft(), buttonSize))); >- Rectangle r = new Rectangle ( >- bounds.x, bounds.bottom() - buttonSize.height, >- buttonSize.width, buttonSize.height); >+ getButtonUp().setBounds( >+ transposer.t(new Rectangle(bounds.getTop().getTranslated( >+ -(buttonSize.width / 2), 0), buttonSize))); >+ Rectangle r = new Rectangle(bounds.getBottom().getTranslated( >+ -(buttonSize.width / 2), -buttonSize.height), buttonSize); > getButtonDown().setBounds(transposer.t(r)); >- if (scrollBar.getBackgroundColor() == ColorConstants.listBackground >- && getButtonDown().getBorder() != CONTRAST) >- getButtonDown().setBorder(CONTRAST); > Rectangle trackBounds = bounds.getCropped( > new Insets(buttonSize.height, 0, buttonSize.height, 0)); > RangeModel model = scrollBar.getRangeModel(); >@@ -157,16 +183,10 @@ > setOpaque(false); > } > >-/** >- * @see org.eclipse.draw2d.ScrollBar#stepDown() >- */ > protected void stepDown() { > timedStep(false); > } > >-/** >- * @see org.eclipse.draw2d.ScrollBar#stepUp() >- */ > protected void stepUp() { > timedStep(true); > } >Index: src/org/eclipse/gef/ui/palette/editparts/PaletteEditPart.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.gef/plugins/org.eclipse.gef/src/org/eclipse/gef/ui/palette/editparts/PaletteEditPart.java,v >retrieving revision 1.27 >diff -u -r1.27 PaletteEditPart.java >--- src/org/eclipse/gef/ui/palette/editparts/PaletteEditPart.java 19 Oct 2007 19:47:06 -0000 1.27 >+++ src/org/eclipse/gef/ui/palette/editparts/PaletteEditPart.java 11 Feb 2008 15:13:48 -0000 >@@ -1,5 +1,5 @@ > /******************************************************************************* >- * Copyright (c) 2000, 2007 IBM Corporation and others. >+ * Copyright (c) 2000, 2008 IBM Corporation and others. > * 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 >@@ -39,6 +39,7 @@ > import org.eclipse.gef.palette.PaletteContainer; > import org.eclipse.gef.palette.PaletteEntry; > import org.eclipse.gef.palette.PaletteSeparator; >+import org.eclipse.gef.palette.PaletteToolbar; > import org.eclipse.gef.tools.SelectEditPartTracker; > import org.eclipse.gef.ui.palette.PaletteMessages; > import org.eclipse.gef.ui.palette.PaletteViewer; >@@ -301,8 +302,7 @@ > * @since 3.2 > */ > protected boolean nameNeededInToolTip() { >- return getPreferenceSource().getLayoutSetting() >- == PaletteViewerPreferences.LAYOUT_ICONS; >+ return getLayoutSetting() == PaletteViewerPreferences.LAYOUT_ICONS; > } > > /** >@@ -413,4 +413,30 @@ > } > } > >+/** >+ * Returns the current layout setting. >+ * >+ * @return the current layout setting. >+ * @see PaletteViewerPreferences#getLayoutSetting() >+ * @since 3.4 >+ */ >+protected int getLayoutSetting() { >+ if (getParent() instanceof PaletteEditPart) { >+ return ((PaletteEditPart) getParent()).getLayoutSetting(); >+ } >+ return getPreferenceSource().getLayoutSetting(); >+} >+ >+/** >+ * Returns true if this item is on the palette toolbar. >+ * >+ * @return true if this item is on the palette toolbar; false otherwise >+ * @since 3.4 >+ */ >+protected boolean isToolbarItem() { >+ if (getParent() instanceof PaletteEditPart) { >+ return ((PaletteEditPart) getParent()).isToolbarItem(); >+ } >+ return false; >+} > } >Index: src/org/eclipse/gef/ui/palette/FlyoutPaletteComposite.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.gef/plugins/org.eclipse.gef/src/org/eclipse/gef/ui/palette/FlyoutPaletteComposite.java,v >retrieving revision 1.50 >diff -u -r1.50 FlyoutPaletteComposite.java >--- src/org/eclipse/gef/ui/palette/FlyoutPaletteComposite.java 2 Jan 2008 19:30:22 -0000 1.50 >+++ src/org/eclipse/gef/ui/palette/FlyoutPaletteComposite.java 11 Feb 2008 15:13:48 -0000 >@@ -33,9 +33,7 @@ > import org.eclipse.swt.events.MouseTrackAdapter; > import org.eclipse.swt.events.MouseTrackListener; > import org.eclipse.swt.graphics.Font; >-import org.eclipse.swt.graphics.FontData; > import org.eclipse.swt.graphics.GC; >-import org.eclipse.swt.graphics.Image; > import org.eclipse.swt.graphics.Point; > import org.eclipse.swt.graphics.Rectangle; > import org.eclipse.swt.widgets.Canvas; >@@ -56,7 +54,6 @@ > import org.eclipse.jface.action.IMenuListener; > import org.eclipse.jface.action.IMenuManager; > import org.eclipse.jface.action.MenuManager; >-import org.eclipse.jface.resource.ImageDescriptor; > import org.eclipse.jface.resource.JFaceResources; > import org.eclipse.jface.util.IPropertyChangeListener; > import org.eclipse.jface.util.TransferDropTargetListener; >@@ -66,7 +63,6 @@ > import org.eclipse.ui.IViewReference; > import org.eclipse.ui.IWorkbenchPage; > import org.eclipse.ui.IWorkbenchWindow; >-import org.eclipse.ui.PlatformUI; > import org.eclipse.ui.XMLMemento; > import org.eclipse.ui.internal.DragCursors; > >@@ -80,21 +76,18 @@ > import org.eclipse.draw2d.FocusListener; > import org.eclipse.draw2d.Graphics; > import org.eclipse.draw2d.IFigure; >-import org.eclipse.draw2d.ImageFigure; >-import org.eclipse.draw2d.ImageUtilities; > import org.eclipse.draw2d.Label; > import org.eclipse.draw2d.LightweightSystem; > import org.eclipse.draw2d.MarginBorder; > import org.eclipse.draw2d.PositionConstants; >-import org.eclipse.draw2d.SWTGraphics; >+import org.eclipse.draw2d.Triangle; > import org.eclipse.draw2d.geometry.Dimension; >-import org.eclipse.draw2d.geometry.Insets; > > import org.eclipse.gef.GraphicalViewer; > import org.eclipse.gef.SharedCursors; > import org.eclipse.gef.dnd.TemplateTransfer; > import org.eclipse.gef.internal.GEFMessages; >-import org.eclipse.gef.internal.Internal; >+import org.eclipse.gef.internal.InternalImages; > import org.eclipse.gef.ui.views.palette.PaletteView; > > /** >@@ -124,6 +117,10 @@ > > private static final int STATE_HIDDEN = 8; > private static final int STATE_EXPANDED = 1; >+ >+private static final Dimension ARROW_SIZE = new Dimension(6, 11); >+private static final Dimension SASH_BUTTON_SIZE = new Dimension(11, 25); >+ > /** > * One of the two possible initial states of the flyout palette. This is the default one. > * When in this state, only the flyout palette's sash is visible. >@@ -136,11 +133,6 @@ > */ > public static final int STATE_PINNED_OPEN = 4; > >-private static final Image LEFT_ARROW = new Image(null, ImageDescriptor.createFromFile( >- Internal.class, "icons/palette_left.gif").getImageData()); //$NON-NLS-1$ >-private static final Image RIGHT_ARROW = new Image(null, ImageDescriptor.createFromFile( >- Internal.class, "icons/palette_right.gif").getImageData()); //$NON-NLS-1$ >- > private PropertyChangeSupport listeners = new PropertyChangeSupport(this); > private Composite paletteContainer; > private PaletteViewer pViewer, externalViewer; >@@ -681,11 +673,10 @@ > } > > private class Sash extends Composite { >- private Control button, title; >+ private Control button; > public Sash(Composite parent, int style) { > super(parent, style); > button = createFlyoutControlButton(this); >- title = createTitle(this, false); > new SashDragManager(); > > addMouseTrackListener(new MouseTrackAdapter() { >@@ -714,48 +705,33 @@ > } > }); > } >- /** >- * @see org.eclipse.swt.widgets.Control#computeSize(int, int, boolean) >- */ >+ > public Point computeSize(int wHint, int hHint, boolean changed) { > if (isInState(STATE_PINNED_OPEN)) >- return new Point(6, 1); >- Point buttonSize = button.computeSize(wHint, hHint); >- Point titleSize = title.computeSize(wHint, hHint); >- return new Point(Math.max(buttonSize.x, titleSize.x) + 2, >- buttonSize.y + titleSize.y + 7); >+ return new Point(1, 1); >+ >+ // button size plus one pixel for the line to be drawn >+ return new Point(SASH_BUTTON_SIZE.width + 1, SASH_BUTTON_SIZE.height + 1); > } > private void handleSashDragged(int shiftAmount) { > int newSize = paletteContainer.getBounds().width > + (dock == PositionConstants.EAST ? -shiftAmount : shiftAmount); > setPaletteWidth(newSize); > } >- /** >- * @see org.eclipse.swt.widgets.Composite#layout(boolean) >- */ > public void layout(boolean changed) { >- if (button == null || title == null) >+ if (button == null) > return; > > if (isInState(STATE_PINNED_OPEN)) { >- title.setVisible(false); > button.setVisible(false); > return; > } > >- title.setVisible(true); > button.setVisible(true); > Rectangle area = getClientArea(); >- // 1 pixel margin all around to draw the raised border >- area.x += 1; >- area.y += 1; >- area.width -= 2; >- area.height -= 2; >- button.setBounds(area.x, area.y, area.width, area.width); >- // 5-pixel spacing >- area.y += area.width + 3; >- title.setBounds(area.x, area.y, area.width, >- title.computeSize(-1, -1).y); >+ button.setBounds(area.x, area.y, SASH_BUTTON_SIZE.width, >+ SASH_BUTTON_SIZE.height); >+ > if (transferFocus) { > transferFocus = false; > button.setFocus(); >@@ -763,12 +739,8 @@ > } > private void paintSash(GC gc) { > Rectangle bounds = getBounds(); >- gc.setForeground(ColorConstants.buttonLightest); >- gc.drawLine(0, 0, bounds.width, 0); >- gc.drawLine(0, 0, 0, bounds.height); > gc.setForeground(ColorConstants.buttonDarker); > gc.drawLine(bounds.width - 1, 0, bounds.width - 1, bounds.height - 1); >- gc.drawLine(0, bounds.height - 1, bounds.width - 1, bounds.height - 1); > } > private void updateState() { > setCursor(isInState(STATE_EXPANDED | STATE_PINNED_OPEN) >@@ -1002,10 +974,9 @@ > if (dock == PositionConstants.EAST) { > int buttonX = area.width - buttonSize.x; > button.setBounds(buttonX, 0, buttonSize.x, height); >- // leave some space between the button and the title >- title.setBounds(0, 0, buttonX - 2, height); >+ title.setBounds(0, 0, buttonX, height); > } else { >- int titleX = buttonSize.x + 2; >+ int titleX = buttonSize.x; > button.setBounds(0, 0, buttonSize.x, height); > title.setBounds(titleX, 0, area.width - titleX, height); > } >@@ -1025,63 +996,11 @@ > } > } > >-private class RotatedTitleLabel >- extends ImageFigure { >- public RotatedTitleLabel() { >- FlyoutPaletteComposite.this.addDisposeListener(new DisposeListener() { >- public void widgetDisposed(DisposeEvent e) { >- if (getImage() != null && !getImage().isDisposed()) >- getImage().dispose(); >- } >- }); >- } >- protected void paintFigure(Graphics graphics) { >- if (getImage() == null) >- updateImage(); >- super.paintFigure(graphics); >- if (hasFocus()) >- graphics.drawFocus(0, 0, bounds.width - 1, bounds.height - 1); >- } >- public void setFont(Font f) { >- if (f != getLocalFont()) { >- super.setFont(f); >- updateImage(); >- } >- } >- protected void updateImage() { >- if (getImage() != null) >- getImage().dispose(); >- IFigure fig = new TitleLabel(false); >- fig.setFont(getFont()); >- fig.setBackgroundColor(ColorConstants.button); >- fig.setOpaque(true); >- // This is a hack. TitleLabel does not return a proper preferred size, since >- // its getInsets() method depends on its current size. To make it work properly, >- // we first make the size really big. >- fig.setSize(Integer.MAX_VALUE, Integer.MAX_VALUE); >- Dimension imageSize = fig.getPreferredSize(-1, -1); >- fig.setSize(imageSize); >- Image img = new Image(null, imageSize.width, imageSize.height); >- GC gc = new GC(img); >- Graphics graphics = new SWTGraphics(gc); >- fig.paint(graphics); >- graphics.dispose(); >- gc.dispose(); >- setImage(ImageUtilities.createRotatedImage(img)); >- img.dispose(); >- } >-} >- > private static class TitleLabel extends Label { >- protected static final Border BORDER = new MarginBorder(0, 3, 0, 3); >+ protected static final Border BORDER = new MarginBorder(4, 3, 4, 3); > protected static final Border TOOL_TIP_BORDER = new MarginBorder(0, 2, 0, 2); >- private static final int H_GAP = 4; >- private static final int LINE_LENGTH = 20; >- private static final int MIN_LINE_LENGTH = 6; >- private boolean horizontal; > public TitleLabel(boolean isHorizontal) { >- super(GEFMessages.Palette_Label); >- horizontal = isHorizontal; >+ super(GEFMessages.Palette_Label, InternalImages.get(InternalImages.IMG_PALETTE)); > setLabelAlignment(PositionConstants.LEFT); > setBorder(BORDER); > Label tooltip = new Label(getText()); >@@ -1089,78 +1008,32 @@ > setToolTip(tooltip); > setForegroundColor(ColorConstants.listForeground); > } >- public Insets getInsets() { >- Insets insets = super.getInsets(); >- Dimension diff = getBounds().getCropped(insets).getSize() >- .getDifference(getTextBounds().getSize()); >- if (diff.width > 0) { >- insets = new Insets(insets); >- int width = Math.min(LINE_LENGTH + H_GAP, diff.width / 2); >- insets.left += width; >- insets.right += width; >- } >- return insets; >- } > public IFigure getToolTip() { > if (isTextTruncated()) > return super.getToolTip(); > return null; > } > protected void paintFigure(Graphics graphics) { >- super.paintFigure(graphics); >- org.eclipse.draw2d.geometry.Rectangle area = >- getBounds().getCropped(super.getInsets()); >- org.eclipse.draw2d.geometry.Rectangle textBounds = getTextBounds(); >- // We reduce the width by 1 because FigureUtilities grows it by 1 unnecessarily >- textBounds.width--; >- >- if (hasFocus()) >- graphics.drawFocus(bounds.getResized(-1, -1) >- .intersect(textBounds.getExpanded(getInsets()))); > >- int lineWidth = Math.min((area.width - textBounds.width - H_GAP * 2) / 2, >- LINE_LENGTH); >- if (lineWidth >= MIN_LINE_LENGTH) { >- int centerY = area.height / 2; >- graphics.setForegroundColor(ColorConstants.buttonLightest); >- graphics.drawLine(textBounds.x - H_GAP - lineWidth, centerY - 3, >- textBounds.x - H_GAP, centerY - 3); >- graphics.drawLine(textBounds.x - H_GAP - lineWidth, centerY + 2, >- textBounds.x - H_GAP, centerY + 2); >- graphics.drawLine(textBounds.right() + H_GAP, centerY - 3, >- textBounds.right() + H_GAP + lineWidth, centerY - 3); >- graphics.drawLine(textBounds.right() + H_GAP, centerY + 2, >- textBounds.right() + H_GAP + lineWidth, centerY + 2); >- graphics.setForegroundColor(ColorConstants.buttonDarker); >- graphics.drawLine(textBounds.x - H_GAP - lineWidth, centerY + 3, >- textBounds.x - H_GAP, centerY + 3); >- graphics.drawLine(textBounds.x - H_GAP - lineWidth, centerY - 2, >- textBounds.x - H_GAP, centerY - 2); >- graphics.drawLine(textBounds.right() + H_GAP, centerY - 2, >- textBounds.right() + H_GAP + lineWidth, centerY - 2); >- graphics.drawLine(textBounds.right() + H_GAP, centerY + 3, >- textBounds.right() + H_GAP + lineWidth, centerY + 3); >- if (horizontal) { >- graphics.drawPoint(textBounds.x - H_GAP, centerY + 2); >- graphics.drawPoint(textBounds.x - H_GAP, centerY - 3); >- graphics.drawPoint(textBounds.right() + H_GAP + lineWidth, centerY - 3); >- graphics.drawPoint(textBounds.right() + H_GAP + lineWidth, centerY + 2); >- graphics.setForegroundColor(ColorConstants.buttonLightest); >- graphics.drawPoint(textBounds.x - H_GAP - lineWidth, centerY - 2); >- graphics.drawPoint(textBounds.x - H_GAP - lineWidth, centerY + 3); >- graphics.drawPoint(textBounds.right() + H_GAP, centerY - 2); >- graphics.drawPoint(textBounds.right() + H_GAP, centerY + 3); >- } else { >- graphics.drawPoint(textBounds.x - H_GAP - lineWidth, centerY + 2); >- graphics.drawPoint(textBounds.x - H_GAP - lineWidth, centerY - 3); >- graphics.drawPoint(textBounds.right() + H_GAP, centerY - 3); >- graphics.drawPoint(textBounds.right() + H_GAP, centerY + 2); >- graphics.setForegroundColor(ColorConstants.buttonLightest); >- graphics.drawPoint(textBounds.x - H_GAP, centerY - 2); >- graphics.drawPoint(textBounds.x - H_GAP, centerY + 3); >- graphics.drawPoint(textBounds.right() + H_GAP + lineWidth, centerY - 2); >- graphics.drawPoint(textBounds.right() + H_GAP + lineWidth, centerY + 3); >- } >+ // paint the gradient >+ graphics.pushState(); >+ org.eclipse.draw2d.geometry.Rectangle r = org.eclipse.draw2d.geometry.Rectangle.SINGLETON; >+ r.setBounds(getBounds()); >+ graphics.setForegroundColor(ColorConstants.listBackground); >+ graphics.setBackgroundColor(ColorConstants.WIDGET_BACKGROUND); >+ graphics.fillGradient(r, true); >+ graphics.popState(); >+ >+ // paint the text and icon >+ super.paintFigure(graphics); >+ >+ // paint the focus rectangle around the text >+ if (hasFocus()) { >+ org.eclipse.draw2d.geometry.Rectangle textBounds = getTextBounds(); >+ // We reduce the width by 1 because FigureUtilities grows it by 1 unnecessarily >+ textBounds.width--; >+ graphics.drawFocus(bounds.getResized(-1, -1) >+ .intersect(textBounds.getExpanded(getInsets()))); > } > } > } >@@ -1177,19 +1050,19 @@ > size.union(new Dimension(wHint, hHint)); > return new org.eclipse.swt.graphics.Point(size.width, size.height); > } >- private Image getButtonImage() { >- Image arrow = null; >+ private int getArrowDirection() { >+ int direction = PositionConstants.EAST; > if (isInState(STATE_EXPANDED | STATE_PINNED_OPEN)) >- arrow = dock == PositionConstants.WEST ? LEFT_ARROW : RIGHT_ARROW; >+ direction = dock == PositionConstants.WEST ? PositionConstants.WEST : PositionConstants.EAST; > else >- arrow = dock == PositionConstants.WEST ? RIGHT_ARROW : LEFT_ARROW; >+ direction = dock == PositionConstants.WEST ? PositionConstants.EAST : PositionConstants.WEST; > if (isMirrored()) { >- if (arrow == LEFT_ARROW) >- arrow = RIGHT_ARROW; >+ if (direction == PositionConstants.WEST) >+ direction = PositionConstants.EAST; > else >- arrow = LEFT_ARROW; >+ direction = PositionConstants.WEST; > } >- return arrow; >+ return direction; > } > private String getButtonTooltipText() { > if (isInState(STATE_COLLAPSED)) >@@ -1200,7 +1073,7 @@ > setCursor(SharedCursors.ARROW); > lws = new LightweightSystem(); > lws.setControl(this); >- final ImageButton b = new ImageButton(getButtonImage()); >+ final ArrowButton b = new ArrowButton(getArrowDirection()); > b.setRolloverEnabled(true); > b.setBorder(new ButtonBorder(ButtonBorder.SCHEMES.TOOLBAR)); > b.addActionListener(new ActionListener() { >@@ -1215,10 +1088,10 @@ > listeners.addPropertyChangeListener(new PropertyChangeListener() { > public void propertyChange(PropertyChangeEvent evt) { > if (evt.getPropertyName().equals(PROPERTY_STATE)) { >- b.setImage(getButtonImage()); >+ b.setDirection(getArrowDirection()); > setToolTipText(getButtonTooltipText()); > } else if (evt.getPropertyName().equals(PROPERTY_DOCK_LOCATION)) >- b.setImage(getButtonImage()); >+ b.setDirection(getArrowDirection()); > } > }); > lws.setContents(b); >@@ -1241,15 +1114,57 @@ > } > }); > } >- private class ImageButton extends Button { >- public ImageButton(Image img) { >- super(); >- setContents(new ImageFigure(img)); >- } >- public void setImage(Image img) { >- ((ImageFigure)getChildren().get(0)).setImage(img); >- } >- } >+ >+ private class ArrowButton >+ extends Button { >+ >+ private Triangle triangle; >+ >+ /** >+ * Creates a new instance >+ * >+ * @param direction >+ * the direction the arrow should face (PositionConstants.RIGHT or >+ * PositionConstants.LEFT) >+ */ >+ public ArrowButton(int direction) { >+ super(); >+ setDirection(direction); >+ >+ triangle = new Triangle(); >+ triangle.setOutline(true); >+ triangle.setBackgroundColor(ColorConstants.listBackground); >+ triangle.setForegroundColor(ColorConstants.buttonDarkest); >+ setContents(triangle); >+ } >+ >+ public void setDirection(int direction) { >+ if (triangle != null) { >+ triangle.setDirection(direction); >+ } >+ } >+ >+ protected void layout() { >+ org.eclipse.draw2d.geometry.Rectangle clientArea = getBounds(); >+ >+ triangle.setBounds(new org.eclipse.draw2d.geometry.Rectangle(clientArea >+ .getCenter().getTranslated(-ARROW_SIZE.width / 2, >+ -ARROW_SIZE.height / 2), ARROW_SIZE)); >+ } >+ >+ protected void paintFigure(Graphics graphics) { >+ super.paintFigure(graphics); >+ >+ // paint the gradient >+ graphics.pushState(); >+ org.eclipse.draw2d.geometry.Rectangle r = org.eclipse.draw2d.geometry.Rectangle.SINGLETON; >+ r.setBounds(getBounds()); >+ graphics.setForegroundColor(ColorConstants.listBackground); >+ graphics.setBackgroundColor(ColorConstants.WIDGET_BACKGROUND); >+ graphics.fillGradient(r, true); >+ graphics.popState(); >+ } >+ } > } > > private class TitleCanvas extends Canvas { >@@ -1268,12 +1183,7 @@ > return new org.eclipse.swt.graphics.Point(size.width, size.height); > } > private void init(boolean isHorizontal) { >- IFigure fig; >- if (isHorizontal) >- fig = new TitleLabel(true); >- else >- fig = new RotatedTitleLabel(); >- final IFigure contents = fig; >+ final IFigure contents = new TitleLabel(true); > contents.setRequestFocusEnabled(true); > contents.setFocusTraversable(true); > contents.addFocusListener(new FocusListener() { >@@ -1381,7 +1291,6 @@ > private final String fontName = getFontType(); > private List registrants = new ArrayList(); > private Font titleFont; >- private boolean newFontCreated = false; > private final IPropertyChangeListener fontListener = new IPropertyChangeListener() { > public void propertyChange(org.eclipse.jface.util.PropertyChangeEvent event) { > if (fontName.equals(event.getProperty())) >@@ -1391,27 +1300,9 @@ > private FontManager() { > } > protected final Font createTitleFont() { >- newFontCreated = false; >- FontData[] data = JFaceResources.getFont(fontName).getFontData(); >- for (int i = 0; i < data.length; i++) >- if ((data[i].getStyle() & SWT.BOLD) == 0) { >- /* >- * @TODO:Pratik need to test this in an environment where there are >- * multiple FontDatas for a font >- */ >- // Any problems with style settings (eg., in the case of a font that >- // does not support bold case), will cause the font to ignore that style >- // setting. >- data[i].setStyle(data[i].getStyle() | SWT.BOLD); >- newFontCreated = true; >- } >- if (newFontCreated) >- return new Font(Display.getCurrent(), data); > return JFaceResources.getFont(fontName); > } > protected void dispose() { >- if (newFontCreated && titleFont != null && !titleFont.isDisposed()) >- titleFont.dispose(); > titleFont = null; > JFaceResources.getFontRegistry().removeListener(fontListener); > } >Index: src/org/eclipse/gef/ui/palette/PaletteEditPartFactory.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.gef/plugins/org.eclipse.gef/src/org/eclipse/gef/ui/palette/PaletteEditPartFactory.java,v >retrieving revision 1.22 >diff -u -r1.22 PaletteEditPartFactory.java >--- src/org/eclipse/gef/ui/palette/PaletteEditPartFactory.java 16 Sep 2005 21:08:34 -0000 1.22 >+++ src/org/eclipse/gef/ui/palette/PaletteEditPartFactory.java 11 Feb 2008 15:13:48 -0000 >@@ -1,5 +1,5 @@ > /******************************************************************************* >- * Copyright (c) 2000, 2005 IBM Corporation and others. >+ * Copyright (c) 2000, 2008 IBM Corporation and others. > * 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 >@@ -19,6 +19,7 @@ > import org.eclipse.gef.internal.ui.palette.editparts.SliderPaletteEditPart; > import org.eclipse.gef.internal.ui.palette.editparts.TemplateEditPart; > import org.eclipse.gef.internal.ui.palette.editparts.ToolEntryEditPart; >+import org.eclipse.gef.internal.ui.palette.editparts.ToolbarEditPart; > import org.eclipse.gef.palette.PaletteContainer; > import org.eclipse.gef.palette.PaletteDrawer; > import org.eclipse.gef.palette.PaletteEntry; >@@ -27,6 +28,7 @@ > import org.eclipse.gef.palette.PaletteSeparator; > import org.eclipse.gef.palette.PaletteStack; > import org.eclipse.gef.palette.PaletteTemplateEntry; >+import org.eclipse.gef.palette.PaletteToolbar; > > /** > * Factory to create EditParts for different PaletteEntries. >@@ -63,6 +65,8 @@ > if (PaletteGroup.PALETTE_TYPE_GROUP.equals(type) > || PaletteContainer.PALETTE_TYPE_UNKNOWN.equals(type)) > return createGroupEditPart(parentEditPart, model); >+ if (PaletteToolbar.PALETTE_TYPE_TOOLBAR_GROUP.equals(type)) >+ return createToolbarEditPart(parentEditPart, model); > } > if (model instanceof PaletteTemplateEntry) > return createTemplateEditPart(parentEditPart, model); >@@ -118,6 +122,17 @@ > } > > /** >+ * Create ToolbarEditPart - edit part for PaletteToolbar >+ * >+ * @param parentEditPart the parent of the new editpart to be created >+ * @param model the PaletteToolbar >+ * @return the newly created EditPart >+ */ >+protected EditPart createToolbarEditPart(EditPart parentEditPart, Object model) { >+ return new ToolbarEditPart((PaletteToolbar)model); >+} >+ >+/** > * Create SliderPaletteEditPart - edit part for PaletteRoot > * > * @param parentEditPart the parent of the new editpart to be created >Index: src/org/eclipse/gef/internal/ui/palette/editparts/ToolbarEditPart.java >=================================================================== >RCS file: src/org/eclipse/gef/internal/ui/palette/editparts/ToolbarEditPart.java >diff -N src/org/eclipse/gef/internal/ui/palette/editparts/ToolbarEditPart.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/gef/internal/ui/palette/editparts/ToolbarEditPart.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,78 @@ >+/******************************************************************************* >+ * Copyright (c) 2008 IBM Corporation and others. >+ * 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: >+ * IBM Corporation - initial API and implementation >+ *******************************************************************************/ >+ >+package org.eclipse.gef.internal.ui.palette.editparts; >+ >+import org.eclipse.draw2d.ColorConstants; >+import org.eclipse.draw2d.Figure; >+import org.eclipse.draw2d.FigureUtilities; >+import org.eclipse.draw2d.Graphics; >+import org.eclipse.draw2d.IFigure; >+import org.eclipse.draw2d.MarginBorder; >+ >+import org.eclipse.gef.palette.PaletteToolbar; >+import org.eclipse.gef.ui.palette.PaletteViewerPreferences; >+ >+/** >+ * An editpart for the <code>PaletteToolbar</code>. >+ * >+ * @author crevells >+ * @since 3.4 >+ */ >+public class ToolbarEditPart >+ extends GroupEditPart { >+ >+/** >+ * Creates a new instance. >+ * >+ * @param model >+ * the <code>PaletteToolbar</code> >+ */ >+public ToolbarEditPart(PaletteToolbar model) { >+ super(model); >+} >+ >+public IFigure createFigure() { >+ IFigure figure = new Figure() { >+ >+ protected void paintFigure(Graphics graphics) { >+ super.paintFigure(graphics); >+ >+ // draw top border >+ graphics.setForegroundColor(ColorConstants.white); >+ graphics.drawLine(getBounds().getTopLeft(), getBounds() >+ .getTopRight()); >+ >+ // draw bottom border >+ graphics.setForegroundColor(FigureUtilities.mixColors( >+ ColorConstants.WIDGET_BACKGROUND, >+ ColorConstants.WIDGET_NORMAL_SHADOW, 0.7)); >+ graphics.drawLine(getBounds().getBottomLeft().getTranslated(0, -1), >+ getBounds().getBottomRight().getTranslated(0, -1)); >+ } >+ >+ }; >+ figure.setOpaque(true); >+ figure.setBackgroundColor(ColorConstants.WIDGET_BACKGROUND); >+ figure.setBorder(new MarginBorder(2, 1, 1, 1)); >+ >+ return figure; >+} >+ >+protected int getLayoutSetting() { >+ return PaletteViewerPreferences.LAYOUT_ICONS; >+} >+ >+protected boolean isToolbarItem() { >+ return true; >+} >+ >+} >Index: src/org/eclipse/gef/internal/ui/palette/PaletteUtil.java >=================================================================== >RCS file: src/org/eclipse/gef/internal/ui/palette/PaletteUtil.java >diff -N src/org/eclipse/gef/internal/ui/palette/PaletteUtil.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/gef/internal/ui/palette/PaletteUtil.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,69 @@ >+/******************************************************************************* >+ * Copyright (c) 2008 IBM Corporation and others. >+ * 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: >+ * IBM Corporation - initial API and implementation >+ *******************************************************************************/ >+ >+package org.eclipse.gef.internal.ui.palette; >+ >+import org.eclipse.swt.graphics.Color; >+import org.eclipse.swt.widgets.Display; >+ >+/** >+ * A class to keep miscellaneous palette utilities. >+ * >+ * @author crevells >+ * @since 3.4 >+ */ >+public class PaletteUtil { >+ >+private static final Color HOVER_COLOR = new Color(null, 254, 237, 205); >+ >+private static final Color SELECTED_COLOR = new Color(null, 224, 233, 246); >+ >+private static final Color HOVER_COLOR_HICONTRAST = new Color(null, 0, 128, 0); >+ >+private static final Color SELECTED_COLOR_HICONTRAST = new Color(null, 128, 0, >+ 128); >+ >+/** >+ * Gets the color to be used when hovering over palette items. The color differs >+ * in high contrast mode. >+ * >+ * @return the hover color >+ * @since 3.4 >+ */ >+public static Color getHoverColor() { >+ Display display = Display.getCurrent(); >+ if (display == null) { >+ display = Display.getDefault(); >+ } >+ if (display.getHighContrast()) { >+ return HOVER_COLOR_HICONTRAST; >+ } >+ return HOVER_COLOR; >+} >+ >+/** >+ * Gets the color to be used when selecting palette items. The color differs in >+ * high contrast mode. >+ * >+ * @return the selected color >+ * @since 3.4 >+ */ >+public static Color getSelectedColor() { >+ Display display = Display.getCurrent(); >+ if (display == null) { >+ display = Display.getDefault(); >+ } >+ if (display.getHighContrast()) { >+ return SELECTED_COLOR_HICONTRAST; >+ } >+ return SELECTED_COLOR; >+} >+} >Index: src/org/eclipse/gef/palette/PaletteToolbar.java >=================================================================== >RCS file: src/org/eclipse/gef/palette/PaletteToolbar.java >diff -N src/org/eclipse/gef/palette/PaletteToolbar.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/gef/palette/PaletteToolbar.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,61 @@ >+/******************************************************************************* >+ * Copyright (c) 2008 IBM Corporation and others. >+ * 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: >+ * IBM Corporation - initial API and implementation >+ *******************************************************************************/ >+package org.eclipse.gef.palette; >+ >+import java.util.List; >+ >+/** >+ * A PaletteGroup consists of a group of >+ * {@link org.eclipse.gef.palette.PaletteEntry} objects that are uncollapsible . >+ * The user modification level is set to >+ * {@link PaletteEntry#PERMISSION_NO_MODIFICATION}, meaning that the entries >+ * cannot be reordered. >+ * >+ * @author crevells >+ * @since 3.4 >+ */ >+public class PaletteToolbar >+ extends PaletteContainer { >+ >+/** >+ * Type Identifier for a palette group that looks like a toolbar and only >+ * supports icons mode. >+ * >+ * @since 3.4 >+ */ >+public static final String PALETTE_TYPE_TOOLBAR_GROUP = "Palette_Toolbar_Group";//$NON-NLS-1$ >+ >+/** >+ * Creates a new PaletteGroup with the given label >+ * >+ * @param label >+ * the label >+ */ >+public PaletteToolbar(String label) { >+ super(label, null, null, PALETTE_TYPE_TOOLBAR_GROUP); >+ setUserModificationPermission(PERMISSION_NO_MODIFICATION); >+} >+ >+/** >+ * Creates a new PaletteGroup with the given label and list of >+ * {@link PaletteEntry Palette Entries}. >+ * >+ * @param label >+ * the label >+ * @param children >+ * the list of PaletteEntry children >+ */ >+public PaletteToolbar(String label, List children) { >+ this(label); >+ addAll(children); >+} >+ >+} >#P org.eclipse.gef.examples.shapes >Index: src/org/eclipse/gef/examples/shapes/ShapesEditorPaletteFactory.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.gef/examples/org.eclipse.gef.examples.shapes/src/org/eclipse/gef/examples/shapes/ShapesEditorPaletteFactory.java,v >retrieving revision 1.9 >diff -u -r1.9 ShapesEditorPaletteFactory.java >--- src/org/eclipse/gef/examples/shapes/ShapesEditorPaletteFactory.java 29 Sep 2005 22:00:25 -0000 1.9 >+++ src/org/eclipse/gef/examples/shapes/ShapesEditorPaletteFactory.java 11 Feb 2008 15:13:49 -0000 >@@ -1,5 +1,5 @@ > /******************************************************************************* >- * Copyright (c) 2004, 2005 Elias Volanakis and others. >+ * Copyright (c) 2004, 2008 Elias Volanakis and others. > * 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 >@@ -20,6 +20,7 @@ > import org.eclipse.gef.palette.PaletteGroup; > import org.eclipse.gef.palette.PaletteRoot; > import org.eclipse.gef.palette.PaletteSeparator; >+import org.eclipse.gef.palette.PaletteToolbar; > import org.eclipse.gef.palette.PanningSelectionToolEntry; > import org.eclipse.gef.palette.ToolEntry; > import org.eclipse.gef.requests.CreationFactory; >@@ -82,18 +83,15 @@ > > /** Create the "Tools" group. */ > private static PaletteContainer createToolsGroup(PaletteRoot palette) { >- PaletteGroup toolGroup = new PaletteGroup("Tools"); >+ PaletteToolbar toolbar = new PaletteToolbar("Tools"); > > // Add a selection tool to the group > ToolEntry tool = new PanningSelectionToolEntry(); >- toolGroup.add(tool); >+ toolbar.add(tool); > palette.setDefaultEntry(tool); > > // Add a marquee tool to the group >- toolGroup.add(new MarqueeToolEntry()); >- >- // Add a (unnamed) separator to the group >- toolGroup.add(new PaletteSeparator()); >+ toolbar.add(new MarqueeToolEntry()); > > // Add (solid-line) connection tool > tool = new ConnectionCreationToolEntry( >@@ -107,7 +105,7 @@ > }, > ImageDescriptor.createFromFile(ShapesPlugin.class, "icons/connection_s16.gif"), > ImageDescriptor.createFromFile(ShapesPlugin.class, "icons/connection_s24.gif")); >- toolGroup.add(tool); >+ toolbar.add(tool); > > // Add (dashed-line) connection tool > tool = new ConnectionCreationToolEntry( >@@ -121,9 +119,9 @@ > }, > ImageDescriptor.createFromFile(ShapesPlugin.class, "icons/connection_d16.gif"), > ImageDescriptor.createFromFile(ShapesPlugin.class, "icons/connection_d24.gif")); >- toolGroup.add(tool); >+ toolbar.add(tool); > >- return toolGroup; >+ return toolbar; > } > > /** Utility class. */ >#P org.eclipse.draw2d >Index: src/org/eclipse/draw2d/ColorConstants.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.gef/plugins/org.eclipse.draw2d/src/org/eclipse/draw2d/ColorConstants.java,v >retrieving revision 1.14 >diff -u -r1.14 ColorConstants.java >--- src/org/eclipse/draw2d/ColorConstants.java 14 Jan 2008 21:57:29 -0000 1.14 >+++ src/org/eclipse/draw2d/ColorConstants.java 11 Feb 2008 15:13:49 -0000 >@@ -49,22 +49,29 @@ > */ > Color button > = SystemColorFactory.getColor(SWT.COLOR_WIDGET_BACKGROUND); >+Color WIDGET_BACKGROUND = button; >+ > /** > * @see SWT#COLOR_WIDGET_NORMAL_SHADOW > */ > Color buttonDarker > = SystemColorFactory.getColor(SWT.COLOR_WIDGET_NORMAL_SHADOW); >+Color WIDGET_NORMAL_SHADOW = buttonDarker; >+ > /** > * @see SWT#COLOR_WIDGET_DARK_SHADOW > */ > Color buttonDarkest > = SystemColorFactory.getColor(SWT.COLOR_WIDGET_DARK_SHADOW); >+Color WIDGET_DARK_SHADOW = buttonDarkest; > > /** > * @see SWT#COLOR_LIST_BACKGROUND > */ > Color listBackground > = SystemColorFactory.getColor(SWT.COLOR_LIST_BACKGROUND); >+Color WIDGET_LIST_BACKGROUND = listBackground; >+ > /** > * @see SWT#COLOR_LIST_FOREGROUND > */ >@@ -128,6 +135,8 @@ > */ > Color tooltipForeground > = SystemColorFactory.getColor(SWT.COLOR_INFO_FOREGROUND); >+Color INFO_FOREGROUND = tooltipForeground; >+ > /** > * @see SWT#COLOR_INFO_BACKGROUND > */
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 133385
:
36995
|
37739
|
37740
|
38964
|
89312
|
89406
|
89408
|
89437
|
90466