summaryrefslogtreecommitdiffstats
path: root/src/com.gluster.storage.management.gui
diff options
context:
space:
mode:
authorShireesh Anjal <shireesh@gluster.com>2011-07-21 18:56:48 +0530
committerShireesh Anjal <shireesh@gluster.com>2011-07-21 18:58:29 +0530
commit98a1477e2969b43104be9b1e26fc44cd5a027f63 (patch)
treed6171de32ba75c46f5ffa2156646c9e5611a89f5 /src/com.gluster.storage.management.gui
parent99dfb86d11034f3452899c8fe1c5e5023712cd87 (diff)
Modified AbstractTableTreeViewerPage to listen to cluster model changes and paint event
Diffstat (limited to 'src/com.gluster.storage.management.gui')
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/AbstractTableTreeViewerPage.java42
1 files changed, 36 insertions, 6 deletions
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/AbstractTableTreeViewerPage.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/AbstractTableTreeViewerPage.java
index 13c2ceef..b2f59b2c 100644
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/AbstractTableTreeViewerPage.java
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/AbstractTableTreeViewerPage.java
@@ -27,6 +27,10 @@ import org.eclipse.jface.viewers.IContentProvider;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.events.PaintEvent;
+import org.eclipse.swt.events.PaintListener;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
@@ -41,6 +45,7 @@ import org.eclipse.ui.forms.widgets.FormToolkit;
import com.gluster.storage.management.core.model.ClusterListener;
import com.gluster.storage.management.core.model.Disk;
+import com.gluster.storage.management.gui.GlusterDataModelManager;
import com.gluster.storage.management.gui.utils.GUIHelper;
public abstract class AbstractTableTreeViewerPage<T> extends Composite implements ISelectionListener {
@@ -50,6 +55,7 @@ public abstract class AbstractTableTreeViewerPage<T> extends Composite implement
protected GUIHelper guiHelper = GUIHelper.getInstance();
protected Composite parent;
protected IWorkbenchSite site;
+ private ClusterListener clusterListener;
private Text filterText;
@@ -97,9 +103,38 @@ public abstract class AbstractTableTreeViewerPage<T> extends Composite implement
Composite tableViewerComposite = createTreeViewerComposite();
createTreeViewer(allDisks, tableViewerComposite);
- parent.layout();
+ parent.layout(); // Important - this actually paints the table
+
+ createListeners(parent);
+ }
+
+ private void createListeners(final Composite parent) {
+ /**
+ * Ideally not required. However the table viewer is not getting laid out properly on performing
+ * "maximize + restore" So this is a hack to make sure that the table is laid out again on re-size of the window
+ */
+ addPaintListener(new PaintListener() {
+
+ @Override
+ public void paintControl(PaintEvent e) {
+ parent.layout();
+ }
+ });
+
+ clusterListener = createClusterListener();
+ GlusterDataModelManager.getInstance().addClusterListener(clusterListener);
+
+ addDisposeListener(new DisposeListener() {
+
+ @Override
+ public void widgetDisposed(DisposeEvent e) {
+ toolkit.dispose();
+ GlusterDataModelManager.getInstance().removeClusterListener(clusterListener);
+ }
+ });
}
+ protected abstract ClusterListener createClusterListener();
protected abstract IBaseLabelProvider getLabelProvider();
protected abstract IContentProvider getContentProvider();
@@ -153,9 +188,4 @@ public abstract class AbstractTableTreeViewerPage<T> extends Composite implement
@Override
public void selectionChanged(IWorkbenchPart part, ISelection selection) {
}
-
- protected ClusterListener createClusterListener() {
- // TODO Auto-generated method stub
- return null;
- }
}