diff options
| author | Shireesh Anjal <shireesh@gluster.com> | 2011-07-21 18:56:48 +0530 |
|---|---|---|
| committer | Shireesh Anjal <shireesh@gluster.com> | 2011-07-21 18:58:29 +0530 |
| commit | 98a1477e2969b43104be9b1e26fc44cd5a027f63 (patch) | |
| tree | d6171de32ba75c46f5ffa2156646c9e5611a89f5 | |
| parent | 99dfb86d11034f3452899c8fe1c5e5023712cd87 (diff) | |
Modified AbstractTableTreeViewerPage to listen to cluster model changes and paint event
| -rw-r--r-- | src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/AbstractTableTreeViewerPage.java | 42 |
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; - } } |
