### Eclipse Workspace Patch 1.0
#P org.eclipse.gef
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.19
diff -u -r1.19 PaletteStackEditPart.java
--- src/org/eclipse/gef/internal/ui/palette/editparts/PaletteStackEditPart.java 17 Apr 2008 18:38:07 -0000 1.19
+++ src/org/eclipse/gef/internal/ui/palette/editparts/PaletteStackEditPart.java 21 Apr 2008 20:01:43 -0000
@@ -12,7 +12,6 @@
import java.beans.PropertyChangeEvent;
import java.util.Iterator;
-import java.util.List;
import org.eclipse.swt.events.MenuEvent;
import org.eclipse.swt.events.MenuListener;
@@ -48,7 +47,6 @@
import org.eclipse.gef.palette.ToolEntry;
import org.eclipse.gef.ui.actions.SetActivePaletteToolAction;
import org.eclipse.gef.ui.palette.PaletteViewer;
-import org.eclipse.gef.ui.palette.PaletteViewerPreferences;
import org.eclipse.gef.ui.palette.editparts.PaletteEditPart;
/**
@@ -60,17 +58,16 @@
public class PaletteStackEditPart
extends PaletteEditPart implements IPaletteStackEditPart
{
-
+
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))
- getClickableFigure().getModel().setMouseOver(activeFigure.getModel().isMouseOver());
+ arrowFigure.getModel().setMouseOver(activeFigure.getModel().isMouseOver());
else if (event.getPropertyName().equals(ButtonModel.ARMED_PROPERTY))
- getClickableFigure().getModel().setArmed(activeFigure.getModel().isArmed());
+ arrowFigure.getModel().setArmed(activeFigure.getModel().isArmed());
}
};
@@ -78,9 +75,9 @@
private ChangeListener clickableArrowListener = new ChangeListener() {
public void handleStateChanged(ChangeEvent event) {
if (event.getPropertyName().equals(ButtonModel.MOUSEOVER_PROPERTY))
- activeFigure.getModel().setMouseOver(getClickableFigure().getModel().isMouseOver());
+ activeFigure.getModel().setMouseOver(arrowFigure.getModel().isMouseOver());
if (event.getPropertyName().equals(ButtonModel.ARMED_PROPERTY))
- activeFigure.getModel().setArmed(getClickableFigure().getModel().isArmed());
+ activeFigure.getModel().setArmed(arrowFigure.getModel().isArmed());
}
};
@@ -95,12 +92,12 @@
private PaletteListener paletteListener = new PaletteListener() {
public void activeToolChanged(PaletteViewer palette, ToolEntry tool) {
if (getStack().getChildren().contains(tool)) {
- if (!getClickableFigure().getModel().isSelected())
- getClickableFigure().getModel().setSelected(true);
+ if (!arrowFigure.getModel().isSelected())
+ arrowFigure.getModel().setSelected(true);
if (!getStack().getActiveEntry().equals(tool))
getStack().setActiveEntry(tool);
} else
- getClickableFigure().getModel().setSelected(false);
+ arrowFigure.getModel().setSelected(false);
}
};
@@ -168,25 +165,16 @@
* @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#createFigure()
*/
public IFigure createFigure() {
-
- arrowFigure = new RolloverArrow();
- Clickable stackFigure = new Clickable() {
- public boolean hasFocus() {
- return false;
- }
+ Figure figure = new Figure() {
public Dimension getPreferredSize(int wHint, int hHint) {
if (PaletteStackEditPart.this.getChildren().isEmpty())
return EMPTY_DIMENSION;
return super.getPreferredSize(wHint, hHint);
}
};
- 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);
+
+ figure.setLayoutManager(new BorderLayout());
contentsFigure = new Figure();
StackLayout stackLayout = new StackLayout();
@@ -194,23 +182,14 @@
// to its bounds
stackLayout.setObserveVisibility(true);
contentsFigure.setLayoutManager(stackLayout);
+ figure.add(contentsFigure, BorderLayout.CENTER);
- stackFigure.add(contentsFigure);
- stackFigure.add(arrowFigure);
-
- stackFigure.addChangeListener(clickableArrowListener);
- stackFigure.addActionListener(actionListener);
+ arrowFigure = new RolloverArrow();
+ arrowFigure.addChangeListener(clickableArrowListener);
+ arrowFigure.addActionListener(actionListener);
+ figure.add(arrowFigure, BorderLayout.RIGHT);
- return stackFigure;
-}
-
-/**
- * Returns the Clickable
figure.
- *
- * @return the Clickable
figure
- */
-private Clickable getClickableFigure() {
- return (Clickable) getFigure();
+ return figure;
}
/**
@@ -219,8 +198,8 @@
public void deactivate() {
if (activeFigure != null)
activeFigure.removeChangeListener(clickableListener);
- getClickableFigure().removeActionListener(actionListener);
- getClickableFigure().removeChangeListener(clickableArrowListener);
+ arrowFigure.removeActionListener(actionListener);
+ arrowFigure.removeChangeListener(clickableArrowListener);
getPaletteViewer().removePaletteListener(paletteListener);
super.deactivate();
}
@@ -277,7 +256,7 @@
figureBounds.getBottomLeft().x, figureBounds.getBottomLeft().y);
// remove feedback from the arrow Figure and children figures
- getClickableFigure().getModel().setMouseOver(false);
+ arrowFigure.getModel().setMouseOver(false);
eraseTargetFeedback(new Request(RequestConstants.REQ_SELECTION));
menu.setLocation(menuLocation);
@@ -310,37 +289,6 @@
}
/**
- * @see org.eclipse.gef.editparts.AbstractEditPart#refreshVisuals()
- */
-protected void refreshVisuals() {
- 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);
- }
-}
-
-/**
* @see org.eclipse.gef.EditPart#showTargetFeedback(org.eclipse.gef.Request)
*/
public void showTargetFeedback(Request request) {
@@ -407,13 +355,16 @@
extends Clickable
{
+private static final Border BORDER_TOGGLE = new ButtonBorder(ButtonBorder.SCHEMES.TOOLBAR);
+
/**
* Creates a new Clickable that paints a triangle figure.
*/
RolloverArrow() {
super();
setRolloverEnabled(true);
- setBorder(null);
+ setBorder(BORDER_TOGGLE);
+ setBackgroundColor(ColorConstants.black);
setOpaque(false);
setPreferredSize(11, -1);
}
@@ -426,20 +377,20 @@
}
public void paintFigure(Graphics graphics) {
- Rectangle rect = getBounds().getCopy();
+ Rectangle rect = getClientArea();
graphics.translate(getLocation());
// fill the arrow
int[] points = new int[8];
- points[0] = 4;
+ points[0] = 3;
points[1] = rect.height / 2;
- points[2] = 9;
+ points[2] = 8;
points[3] = rect.height / 2;
- points[4] = 6;
+ points[4] = 5;
points[5] = 3 + rect.height / 2;
- points[6] = 4;
+ points[6] = 3;
points[7] = rect.height / 2;
graphics.fillPolygon(points);
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.35
diff -u -r1.35 ToolEntryEditPart.java
--- src/org/eclipse/gef/internal/ui/palette/editparts/ToolEntryEditPart.java 17 Apr 2008 18:38:07 -0000 1.35
+++ src/org/eclipse/gef/internal/ui/palette/editparts/ToolEntryEditPart.java 21 Apr 2008 20:01:43 -0000
@@ -214,9 +214,7 @@
super(contents);
setOpaque(false);
setEnabled(true);
- if (isToolbarItem()
- && !PaletteStack.PALETTE_TYPE_STACK.equals(getPaletteEntry()
- .getParent().getType())) {
+ if (isToolbarItem()) {
setStyle(Clickable.STYLE_BUTTON | Clickable.STYLE_TOGGLE);
setBorder(TOOLBAR_ITEM_BORDER);
}
@@ -276,7 +274,7 @@
}
protected void paintBorder(Graphics graphics) {
- if (!isToolbarItem() && isEnabled()) {
+ if (isEnabled()) {
if (getBorder() != null)
getBorder().paint(this, graphics, NO_INSETS);
@@ -284,8 +282,8 @@
graphics.setForegroundColor(ColorConstants.black);
graphics.setBackgroundColor(ColorConstants.white);
- Rectangle area = getSelectionRectangle(getLayoutSetting(),
- customLabel);
+ Rectangle area = isToolbarItem() ? getClientArea()
+ : getSelectionRectangle(getLayoutSetting(), customLabel);
if (isStyle(STYLE_BUTTON))
graphics.drawFocus(area.x, area.y, area.width, area.height);
else