Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorspingel2011-02-06 01:34:17 +0000
committerspingel2011-02-06 01:34:17 +0000
commit1a2b400f57938b3f7ff25d0e1a9d3c6e673ac1c4 (patch)
tree8bc034e99391c752bffcc8a5f3bb0484e9b2d175
parent8dfd47b8f0599da36205d5af7c517ec8d77a7291 (diff)
downloadorg.eclipse.mylyn.tasks-1a2b400f57938b3f7ff25d0e1a9d3c6e673ac1c4.tar.gz
org.eclipse.mylyn.tasks-1a2b400f57938b3f7ff25d0e1a9d3c6e673ac1c4.tar.xz
org.eclipse.mylyn.tasks-1a2b400f57938b3f7ff25d0e1a9d3c6e673ac1c4.zip
NEW - bug 288171: enable maximize for any task editor part
https://bugs.eclipse.org/bugs/show_bug.cgi?id=288171
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorRichTextPart.java71
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorPart.java78
2 files changed, 83 insertions, 66 deletions
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorRichTextPart.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorRichTextPart.java
index 5e704fded..38c170511 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorRichTextPart.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorRichTextPart.java
@@ -16,7 +16,6 @@ import org.eclipse.core.runtime.Status;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.ToolBarManager;
import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonFormUtil;
import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
import org.eclipse.mylyn.internal.tasks.ui.editors.RichTextEditor.State;
@@ -27,7 +26,6 @@ import org.eclipse.mylyn.tasks.ui.editors.AbstractAttributeEditor;
import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPart;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.ui.forms.widgets.ExpandableComposite;
@@ -47,8 +45,6 @@ public class TaskEditorRichTextPart extends AbstractTaskEditorPart {
private int sectionStyle;
- private ToggleToMaximizePartAction toggleToMaximizePartAction;
-
private Action toggleEditAction;
private Action toggleBrowserAction;
@@ -165,68 +161,6 @@ public class TaskEditorRichTextPart extends AbstractTaskEditorPart {
}
}
- protected Action getMaximizePartAction() {
- if (toggleToMaximizePartAction == null) {
- toggleToMaximizePartAction = new ToggleToMaximizePartAction();
- }
- return toggleToMaximizePartAction;
- }
-
- private class ToggleToMaximizePartAction extends Action {
-
- private static final String COMMAND_ID = "org.eclipse.mylyn.tasks.ui.command.maximizePart"; //$NON-NLS-1$
-
- private/*static*/final String MAXIMIZE = Messages.TaskEditorRichTextPart_Maximize;
-
- private static final int SECTION_HEADER_HEIGHT = 50;
-
- private int originalHeight = -2;
-
- public ToggleToMaximizePartAction() {
- super("", SWT.TOGGLE); //$NON-NLS-1$
- setImageDescriptor(CommonImages.PART_MAXIMIZE);
- setToolTipText(MAXIMIZE);
- setActionDefinitionId(COMMAND_ID);
- setChecked(false);
- }
-
- @Override
- public void run() {
- if (!(getEditor().getControl().getLayoutData() instanceof GridData)) {
- return;
- }
-
- GridData gd = (GridData) getEditor().getControl().getLayoutData();
-
- if (originalHeight == -2) {
- originalHeight = gd.heightHint;
- }
-
- try {
- getTaskEditorPage().setReflow(false);
-
- int heightHint;
- if (isChecked()) {
- heightHint = getManagedForm().getForm().getClientArea().height - SECTION_HEADER_HEIGHT;
- } else {
- heightHint = originalHeight;
- }
-
- // ignore when not necessary
- if (gd.heightHint == heightHint) {
- return;
- }
- gd.heightHint = heightHint;
- gd.minimumHeight = heightHint;
- } finally {
- getTaskEditorPage().setReflow(true);
- }
-
- getTaskEditorPage().reflow();
- CommonFormUtil.ensureVisible(getEditor().getControl());
- }
- }
-
@Override
protected void fillToolBar(ToolBarManager manager) {
if (getEditor().hasPreview()) {
@@ -298,4 +232,9 @@ public class TaskEditorRichTextPart extends AbstractTaskEditorPart {
super.fillToolBar(manager);
}
+ @Override
+ protected Control getLayoutControl() {
+ return (getEditor() != null) ? getEditor().getControl() : null;
+ }
+
}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorPart.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorPart.java
index 28efefdc8..42b0f6d4a 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorPart.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/AbstractTaskEditorPart.java
@@ -11,15 +11,20 @@
package org.eclipse.mylyn.tasks.ui.editors;
+import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.ToolBarManager;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.mylyn.internal.provisional.commons.ui.CommonFormUtil;
+import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
+import org.eclipse.mylyn.internal.tasks.ui.editors.Messages;
import org.eclipse.mylyn.internal.tasks.ui.editors.RichTextAttributeEditor;
import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
import org.eclipse.mylyn.tasks.core.data.TaskData;
import org.eclipse.mylyn.tasks.core.data.TaskDataModel;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
@@ -47,6 +52,8 @@ public abstract class AbstractTaskEditorPart extends AbstractFormPart {
private boolean expandVertically;
+ private MaximizePartAction maximizePartAction;
+
public AbstractTaskEditorPart() {
}
@@ -166,4 +173,75 @@ public abstract class AbstractTaskEditorPart extends AbstractFormPart {
this.expandVertically = expandVertically;
}
+ /**
+ * Returns an action for maximizing the part.
+ *
+ * @since 3.5
+ */
+ protected Action getMaximizePartAction() {
+ if (maximizePartAction == null) {
+ maximizePartAction = new MaximizePartAction();
+ }
+ return maximizePartAction;
+ }
+
+ /**
+ * Returns the control that determines the size of the part.
+ *
+ * @see #getMaximizePartAction()
+ * @since 3.5
+ */
+ protected Control getLayoutControl() {
+ return getControl();
+ }
+
+ private class MaximizePartAction extends Action {
+
+ private static final String COMMAND_ID = "org.eclipse.mylyn.tasks.ui.command.maximizePart"; //$NON-NLS-1$
+
+ private static final int SECTION_HEADER_HEIGHT = 50;
+
+ private int originalHeight = -2;
+
+ public MaximizePartAction() {
+ super(Messages.TaskEditorRichTextPart_Maximize, SWT.TOGGLE);
+ setImageDescriptor(CommonImages.PART_MAXIMIZE);
+ setToolTipText(Messages.TaskEditorRichTextPart_Maximize);
+ setActionDefinitionId(COMMAND_ID);
+ setChecked(false);
+ }
+
+ @Override
+ public void run() {
+ Control control = getLayoutControl();
+ if (control == null || !(control.getLayoutData() instanceof GridData)) {
+ return;
+ }
+
+ GridData gd = (GridData) control.getLayoutData();
+
+ // initialize originalHeight on first invocation
+ if (originalHeight == -2) {
+ originalHeight = gd.heightHint;
+ }
+
+ int heightHint;
+ if (isChecked()) {
+ heightHint = getManagedForm().getForm().getClientArea().height - SECTION_HEADER_HEIGHT;
+ } else {
+ heightHint = originalHeight;
+ }
+
+ // ignore when not necessary
+ if (gd.heightHint == heightHint) {
+ return;
+ }
+ gd.heightHint = heightHint;
+ gd.minimumHeight = heightHint;
+
+ getTaskEditorPage().reflow();
+ CommonFormUtil.ensureVisible(control);
+ }
+ }
+
}

Back to the top