diff options
author | ddunne | 2010-06-09 19:12:33 +0000 |
---|---|---|
committer | ddunne | 2010-06-09 19:12:33 +0000 |
commit | a4169419ec78b05665dd8181cee0d91428157680 (patch) | |
tree | 801751aaf1bd729c9a851860228b6479b745b5df /plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util | |
parent | f295d6904c0fe7453ab569398ac3454f9d925407 (diff) | |
download | org.eclipse.osee-a4169419ec78b05665dd8181cee0d91428157680.tar.gz org.eclipse.osee-a4169419ec78b05665dd8181cee0d91428157680.tar.xz org.eclipse.osee-a4169419ec78b05665dd8181cee0d91428157680.zip |
"Team Workflow" - 5S7WY - "File List area is too small for dealing with a lot of files"
Diffstat (limited to 'plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util')
2 files changed, 106 insertions, 37 deletions
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/defect/XDefectViewer.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/defect/XDefectViewer.java index cf744709f9e..8f7a1d479b1 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/defect/XDefectViewer.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/defect/XDefectViewer.java @@ -12,6 +12,7 @@ package org.eclipse.osee.ats.util.widgets.defect;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
@@ -62,10 +63,12 @@ import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.swt.widgets.Sash;
import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.swt.widgets.ToolItem;
import org.eclipse.swt.widgets.Tree;
@@ -78,22 +81,17 @@ import org.eclipse.ui.forms.widgets.ScrolledForm; public class XDefectViewer extends XWidget implements IArtifactWidget, IFrameworkTransactionEventListener {
private DefectXViewer xViewer;
- private static final int defaultTableHeightHint = 100;
- private static final int paddedTableHeightHint = 2;
private IDirtiableEditor editor;
private IReviewArtifact reviewArt;
public final static String normalColor = "#EEEEEE";
private static ToolItem newDefectItem, deleteDefectItem;
private Label extraInfoLabel;
- private Tree tree;
private Composite parentComposite;
private static ToolItem expandDefectItem, collapseDefectItem;
private static Map<IReviewArtifact, Boolean> mapOfReviewArtifacts = new LinkedHashMap<IReviewArtifact, Boolean>();
private ToolBar toolBar;
+ private static Map<IReviewArtifact, Integer> tableHeight = new HashMap<IReviewArtifact, Integer>();
- /**
- * @param label
- */
public XDefectViewer() {
super("Defects");
OseeEventManager.addListener(this);
@@ -112,7 +110,7 @@ public class XDefectViewer extends XWidget implements IArtifactWidget, IFramewor }
}
- Composite mainComp = new Composite(parent, SWT.BORDER);
+ final Composite mainComp = new Composite(parent, SWT.BORDER);
mainComp.setLayoutData(new GridData(GridData.FILL_BOTH));
mainComp.setLayout(ALayout.getZeroMarginLayout());
if (toolkit != null) {
@@ -134,39 +132,56 @@ public class XDefectViewer extends XWidget implements IArtifactWidget, IFramewor toolkit.adapt(xViewer.getStatusLabel(), false, false);
}
- handleExpandCollapseDefectTableList();
-
+ refreshTableSize();
// NOTE: Don't adapt the tree using xToolkit cause will loose xViewer's context menu
+
+ final Sash sash = new Sash(parent, SWT.HORIZONTAL);
+ GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.heightHint = 3;
+ sash.setLayoutData(gd);
+ sash.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY));
+ sash.addListener(SWT.MouseUp, new Listener() {
+ public void handleEvent(Event e) {
+ Rectangle treeRect = xViewer.getTree().getClientArea();
+ int newHeight = treeRect.height + e.y;
+ setTableHeight(newHeight);
+ refreshTableSize();
+ mainComp.layout();
+ xViewer.refresh();
+ if (getForm(mainComp) != null) {
+ getForm(mainComp).reflow(true);
+ }
+ }
+ });
+
loadTable();
}
- public void setXviewerTree(boolean expand) {
- tree = xViewer.getTree();
+ private void refreshTableSize() {
+ Tree tree = xViewer.getTree();
GridData gridData = new GridData(GridData.FILL_BOTH);
- gridData.heightHint = getTableHeightHint(expand);
+ gridData.heightHint = getTableHeight();
tree.setLayout(ALayout.getZeroMarginLayout());
tree.setLayoutData(gridData);
tree.setHeaderVisible(true);
tree.setLinesVisible(true);
}
- private int getTableHeightHint(boolean expand) {
- try {
- int defectListSize = reviewArt.getDefectManager().getDefectItems().size();
- int treeItemHeight = tree.getItemHeight();
- int calculatedTableHeightHint = treeItemHeight * (defectListSize + 1);
- if (expand && calculatedTableHeightHint > defaultTableHeightHint) {
- // allow expansion to approximately 50 items
- if (defectListSize > defaultTableHeightHint / 2) {
- return treeItemHeight * (paddedTableHeightHint + defaultTableHeightHint);
- } else {
- return treeItemHeight * (paddedTableHeightHint + defectListSize);
- }
- }
- } catch (OseeCoreException ex) {
- OseeLog.log(DefectManager.class, Level.SEVERE, ex.toString());
+ public void setXviewerTree(boolean expand) {
+ }
+
+ private int getTableHeight() {
+ if (reviewArt != null && tableHeight.containsKey(reviewArt)) {
+ return tableHeight.get(reviewArt);
+ }
+ return 100;
+ }
+
+ private void setTableHeight(int newHeight) {
+ if (reviewArt != null) {
+ if (newHeight < 100) newHeight = 100;
+ tableHeight.put(reviewArt, newHeight);
}
- return defaultTableHeightHint;
}
public void createTaskActionBar(Composite parent) {
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/role/XUserRoleViewer.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/role/XUserRoleViewer.java index 01c3600c045..d684d7e0ca2 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/role/XUserRoleViewer.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/role/XUserRoleViewer.java @@ -12,8 +12,10 @@ package org.eclipse.osee.ats.util.widgets.role; import java.util.ArrayList; +import java.util.HashMap; import java.util.Iterator; import java.util.List; +import java.util.Map; import java.util.logging.Level; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; @@ -49,16 +51,21 @@ import org.eclipse.osee.framework.ui.swt.ImageManager; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.Sash; import org.eclipse.swt.widgets.ToolBar; import org.eclipse.swt.widgets.ToolItem; import org.eclipse.swt.widgets.Tree; import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.forms.widgets.ScrolledForm; /** * @author Donald G. Dunne @@ -72,10 +79,8 @@ public class XUserRoleViewer extends XWidget implements IArtifactWidget, IFramew private static ToolItem newUserRoleItem, deleteUserRoleItem; private Label extraInfoLabel; private ToolBar toolBar; + private static Map<IReviewArtifact, Integer> tableHeight = new HashMap<IReviewArtifact, Integer>(); - /** - * @param label - */ public XUserRoleViewer() { super("Roles"); @@ -93,7 +98,7 @@ public class XUserRoleViewer extends XWidget implements IArtifactWidget, IFramew } } - Composite mainComp = new Composite(parent, SWT.BORDER); + final Composite mainComp = new Composite(parent, SWT.BORDER); mainComp.setLayoutData(new GridData(GridData.FILL_BOTH)); mainComp.setLayout(ALayout.getZeroMarginLayout()); if (toolkit != null) { @@ -103,8 +108,6 @@ public class XUserRoleViewer extends XWidget implements IArtifactWidget, IFramew createTaskActionBar(mainComp); xViewer = new UserRoleXViewer(mainComp, SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION, this); - xViewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH)); - xViewer.setContentProvider(new UserRoleContentProvider(xViewer)); xViewer.setLabelProvider(new UserRoleLabelProvider(xViewer)); xViewer.addSelectionChangedListener(new ISelectionChangedListener() { @@ -118,16 +121,67 @@ public class XUserRoleViewer extends XWidget implements IArtifactWidget, IFramew toolkit.adapt(xViewer.getStatusLabel(), false, false); } + refreshTableSize(); + // NOTE: Don't adapt the tree using xToolkit cause will loose xViewer's context menu + + final Sash sash = new Sash(parent, SWT.HORIZONTAL); + GridData gd = new GridData(GridData.FILL_HORIZONTAL); + gd.heightHint = 3; + sash.setLayoutData(gd); + sash.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY)); + sash.addListener(SWT.MouseUp, new Listener() { + public void handleEvent(Event e) { + Rectangle treeRect = xViewer.getTree().getClientArea(); + int newHeight = treeRect.height + e.y; + setTableHeight(newHeight); + refreshTableSize(); + mainComp.layout(); + xViewer.refresh(); + if (getForm(mainComp) != null) { + getForm(mainComp).reflow(true); + } + } + }); + + loadTable(); + } + + private void refreshTableSize() { Tree tree = xViewer.getTree(); GridData gridData = new GridData(GridData.FILL_BOTH); - gridData.heightHint = 100; + gridData.heightHint = getTableHeight(); tree.setLayout(ALayout.getZeroMarginLayout()); tree.setLayoutData(gridData); tree.setHeaderVisible(true); tree.setLinesVisible(true); - // NOTE: Don't adapt the tree using xToolkit cause will loose xViewer's context menu + } - loadTable(); + public ScrolledForm getForm(Composite composite) { + ScrolledForm form = null; + if (composite == null) { + return null; + } + if (composite instanceof ScrolledForm) { + return (ScrolledForm) composite; + } + if (!(composite instanceof ScrolledForm)) { + form = getForm(composite.getParent()); + } + return form; + } + + private int getTableHeight() { + if (reviewArt != null && tableHeight.containsKey(reviewArt)) { + return tableHeight.get(reviewArt); + } + return 100; + } + + private void setTableHeight(int newHeight) { + if (reviewArt != null) { + if (newHeight < 100) newHeight = 100; + tableHeight.put(reviewArt, newHeight); + } } public void createTaskActionBar(Composite parent) { |