diff options
author | Stéphane Bégaudeau | 2016-05-11 12:50:47 +0000 |
---|---|---|
committer | Stéphane Bégaudeau | 2016-05-11 12:50:47 +0000 |
commit | 7f3c3dde97e8697e416cb32ab2d4d6f21ef8af18 (patch) | |
tree | 1cf70cb6396568d709c96cd90a25160c48bce8c2 | |
parent | ddb1ec22b95dcf6551ef7783f2b14d485ae944ff (diff) | |
download | org.eclipse.eef-7f3c3dde97e8697e416cb32ab2d4d6f21ef8af18.tar.gz org.eclipse.eef-7f3c3dde97e8697e416cb32ab2d4d6f21ef8af18.tar.xz org.eclipse.eef-7f3c3dde97e8697e416cb32ab2d4d6f21ef8af18.zip |
Fix an issue with truncated button labels
Change-Id: Iccf2d38e86a12909248d4ea0200f1407a1ca2e4f
Signed-off-by: Stéphane Bégaudeau <stephane.begaudeau@obeo.fr>
4 files changed, 20 insertions, 11 deletions
diff --git a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/ActionButton.java b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/ActionButton.java index 981294899..0908d0d0c 100644 --- a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/ActionButton.java +++ b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/ActionButton.java @@ -17,7 +17,7 @@ import org.eclipse.sirius.common.interpreter.api.IInterpreter; import org.eclipse.sirius.common.interpreter.api.IVariableManager; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.layout.RowData; +import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; @@ -68,8 +68,12 @@ public class ActionButton { IVariableManager variableManager) { this.action = action; this.button = widgetFactory.createButton(parent, "", SWT.NONE); //$NON-NLS-1$ - RowData rowData = new RowData(MINIMUM_BUTTON_WIDTH, SWT.DEFAULT); - this.button.setLayoutData(rowData); + + GridData gridData = new GridData(GridData.FILL_HORIZONTAL); + gridData.grabExcessHorizontalSpace = true; + gridData.minimumWidth = MINIMUM_BUTTON_WIDTH; + + this.button.setLayoutData(gridData); String expression = action.getLabelExpression(); String buttonLabel = EvalFactory.of(interpreter, variableManager).logIfInvalidType(String.class).defaultValue("...").evaluate(expression); //$NON-NLS-1$ diff --git a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFButtonLifecycleManager.java b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFButtonLifecycleManager.java index b4affd2ed..18ba61738 100644 --- a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFButtonLifecycleManager.java +++ b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFButtonLifecycleManager.java @@ -39,6 +39,12 @@ import org.eclipse.swt.widgets.Control; * @author pcdavid */ public class EEFButtonLifecycleManager extends AbstractEEFWidgetLifecycleManager { + + /** + * The minimum width of the button. + */ + private static final int MINIMUM_BUTTON_WIDTH = 80; + /** * The description. */ @@ -89,9 +95,9 @@ public class EEFButtonLifecycleManager extends AbstractEEFWidgetLifecycleManager this.button = widgetFactory.createButton(parent, "", SWT.NONE); //$NON-NLS-1$ - final int minimumWidth = 80; - GridData layoutData = new GridData(minimumWidth, SWT.DEFAULT); - this.button.setLayoutData(layoutData); + GridData gridData = new GridData(); + gridData.minimumWidth = MINIMUM_BUTTON_WIDTH; + this.button.setLayoutData(gridData); widgetFactory.paintBordersFor(parent); diff --git a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFMultipleReferencesLifecycleManager.java b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFMultipleReferencesLifecycleManager.java index d93851d4e..80eb65c96 100644 --- a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFMultipleReferencesLifecycleManager.java +++ b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFMultipleReferencesLifecycleManager.java @@ -39,7 +39,6 @@ import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.layout.RowLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Table; @@ -188,16 +187,16 @@ public class EEFMultipleReferencesLifecycleManager extends AbstractEEFWidgetLife Composite buttons = widgetFactory.createFlatFormComposite(parent); GridData gridData = new GridData(); - gridData.grabExcessHorizontalSpace = false; buttons.setLayoutData(gridData); + buttons.setLayout(new GridLayout(1, false)); + // Buttons are visible only if an action is defined for (EEFWidgetAction action : this.description.getActions()) { ActionButton actionButton = new ActionButton(action, buttons, widgetFactory, this.interpreter, this.variableManager); actionButtons.add(actionButton); } - buttons.setLayout(new RowLayout(SWT.VERTICAL)); } /** diff --git a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFReferenceLifecycleManager.java b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFReferenceLifecycleManager.java index 353824ed6..6394755de 100644 --- a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFReferenceLifecycleManager.java +++ b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFReferenceLifecycleManager.java @@ -37,7 +37,6 @@ import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.layout.RowLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; @@ -155,13 +154,14 @@ public class EEFReferenceLifecycleManager extends AbstractEEFWidgetLifecycleMana gridData.grabExcessHorizontalSpace = false; buttons.setLayoutData(gridData); + buttons.setLayout(new GridLayout(this.description.getActions().size(), true)); + // Buttons are visible only if an action is defined for (EEFWidgetAction action : this.description.getActions()) { ActionButton actionButton = new ActionButton(action, buttons, widgetFactory, this.interpreter, this.variableManager); actionButtons.add(actionButton); } - buttons.setLayout(new RowLayout(SWT.HORIZONTAL)); } /** |