diff options
| author | Shireesh Anjal <anjalshireesh@gmail.com> | 2011-06-10 01:42:26 -0700 |
|---|---|---|
| committer | Shireesh Anjal <anjalshireesh@gmail.com> | 2011-06-10 01:42:26 -0700 |
| commit | cab4729354b3d6857986a8b1732002a5a9d8df4f (patch) | |
| tree | 89e6db881597f52532a3289d907d6612502a227b /src | |
| parent | 5e1b12890c6ad6e6fe3bb17589550dfd74f89344 (diff) | |
| parent | 7e460734791cf51b16161c6cb42474c0c8cf5d17 (diff) | |
Merge pull request #66 from Dhandapani/master
Checkbox selection enabled on Bricks page, Volumes page and Disk page
Diffstat (limited to 'src')
5 files changed, 47 insertions, 29 deletions
diff --git a/src/com.gluster.storage.management.gui/plugin.xml b/src/com.gluster.storage.management.gui/plugin.xml index f4c3c8f6..4a7cdafe 100644 --- a/src/com.gluster.storage.management.gui/plugin.xml +++ b/src/com.gluster.storage.management.gui/plugin.xml @@ -900,7 +900,19 @@ </view> <view closeable="false" - id="com.gluster.storage.management.gui.views.VolumeDisksView" + id="com.gluster.storage.management.gui.views.VolumeBricksView" + minimized="false" + moveable="false" + ratio="0.30f" + relationship="stack" + relative="com.gluster.storage.management.gui.views.ClusterSummaryView" + showTitle="true" + standalone="false" + visible="false"> + </view> + <view + closeable="false" + id="com.gluster.storage.management.gui.views.VolumeBricksView" minimized="false" moveable="false" ratio="0.30f" diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/AbstractBricksPage.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/AbstractBricksPage.java index c752a488..412a1ef2 100644 --- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/AbstractBricksPage.java +++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/AbstractBricksPage.java @@ -55,7 +55,7 @@ import com.gluster.storage.management.gui.utils.GUIHelper; public abstract class AbstractBricksPage extends Composite implements IEntityListener { protected final FormToolkit toolkit = new FormToolkit(Display.getCurrent()); - protected TableViewer tableViewer; + protected CheckboxTableViewer tableViewer; private IWorkbenchSite site; protected static final GUIHelper guiHelper = GUIHelper.getInstance(); @@ -134,13 +134,16 @@ public abstract class AbstractBricksPage extends Composite implements IEntityLis return tableViewerComposite; } - private TableViewer createBrickTableViewer(Composite parent) { + private CheckboxTableViewer createBrickTableViewer(Composite parent) { tableViewer = CheckboxTableViewer.newCheckList(parent, SWT.FLAT | SWT.FULL_SELECTION | SWT.MULTI ); tableViewer.setLabelProvider(getTableLabelProvider()); tableViewer.setContentProvider(new ArrayContentProvider()); setupDiskTable(parent, tableViewer.getTable()); + + // make sure that table selection is driven by checkbox selection + guiHelper.configureCheckboxTableViewer(tableViewer); return tableViewer; } diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/AbstractDisksPage.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/AbstractDisksPage.java index 6b516019..105fa824 100644 --- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/AbstractDisksPage.java +++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/AbstractDisksPage.java @@ -39,26 +39,22 @@ import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableItem; import org.eclipse.swt.widgets.Text; import org.eclipse.ui.IWorkbenchSite; -import org.eclipse.ui.PartInitException; import org.eclipse.ui.forms.events.HyperlinkAdapter; import org.eclipse.ui.forms.events.HyperlinkEvent; import org.eclipse.ui.forms.widgets.FormToolkit; import org.eclipse.ui.forms.widgets.ImageHyperlink; -import org.eclipse.ui.progress.IProgressConstants; -import com.gluster.storage.management.core.exceptions.GlusterRuntimeException; import com.gluster.storage.management.core.model.Disk; -import com.gluster.storage.management.core.model.Entity; import com.gluster.storage.management.core.model.Disk.DISK_STATUS; +import com.gluster.storage.management.core.model.Entity; import com.gluster.storage.management.gui.Application; import com.gluster.storage.management.gui.IEntityListener; -import com.gluster.storage.management.gui.IImageKeys; import com.gluster.storage.management.gui.jobs.InitializeDiskJob; import com.gluster.storage.management.gui.utils.GUIHelper; public abstract class AbstractDisksPage extends Composite implements IEntityListener { protected final FormToolkit toolkit = new FormToolkit(Display.getCurrent()); - protected TableViewer tableViewer; + protected CheckboxTableViewer tableViewer; private IWorkbenchSite site; protected static final GUIHelper guiHelper = GUIHelper.getInstance(); @@ -231,13 +227,16 @@ public abstract class AbstractDisksPage extends Composite implements IEntityList return tableViewerComposite; } - private TableViewer createDiskTableViewer(Composite parent) { + private CheckboxTableViewer createDiskTableViewer(Composite parent) { tableViewer = CheckboxTableViewer.newCheckList(parent, SWT.FLAT | SWT.FULL_SELECTION | SWT.MULTI ); tableViewer.setLabelProvider(getTableLabelProvider()); tableViewer.setContentProvider(new ArrayContentProvider()); setupDiskTable(parent, tableViewer.getTable()); + + // make sure that table selection is driven by checkbox selection + guiHelper.configureCheckboxTableViewer(tableViewer); return tableViewer; } diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/VolumesPage.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/VolumesPage.java index 680dc391..38fa2d41 100644 --- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/VolumesPage.java +++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/VolumesPage.java @@ -54,9 +54,9 @@ public class VolumesPage extends Composite { public enum VOLUME_TABLE_COLUMN_INDICES { NAME, VOLUME_TYPE, NUM_OF_DISKS, TRANSPORT_TYPE, VOLUME_STATUS }; - - private static final String[] VOLUME_TABLE_COLUMN_NAMES = new String[] { "Name", - "Volume Type", "Number of\nBricks", "Transport Type", "Status" }; + + private static final String[] VOLUME_TABLE_COLUMN_NAMES = new String[] { "Name", "Volume Type", + "Number of\nBricks", "Transport Type", "Status" }; public VolumesPage(final Composite parent, IWorkbenchSite site, EntityGroup<Volume> volumes) { super(parent, SWT.NONE); @@ -74,7 +74,7 @@ public class VolumesPage extends Composite { setupVolumeTableViewer(site, volumes); parent.layout(); // Important - this actually paints the table - + /** * 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 @@ -85,9 +85,9 @@ public class VolumesPage extends Composite { public void paintControl(PaintEvent e) { parent.layout(); } - }); + }); } - + public void addDoubleClickListener(IDoubleClickListener listener) { tableViewer.addDoubleClickListener(listener); } @@ -102,7 +102,7 @@ public class VolumesPage extends Composite { private void setupVolumeTable(Composite parent, Table table) { table.setHeaderVisible(true); table.setLinesVisible(true); - + TableColumnLayout columnLayout = guiHelper.createTableColumnLayout(table, VOLUME_TABLE_COLUMN_NAMES); parent.setLayout(columnLayout); @@ -110,14 +110,18 @@ public class VolumesPage extends Composite { setColumnProperties(table, VOLUME_TABLE_COLUMN_INDICES.NUM_OF_DISKS, SWT.CENTER, 50); setColumnProperties(table, VOLUME_TABLE_COLUMN_INDICES.TRANSPORT_TYPE, SWT.CENTER, 70); } - - private TableViewer createVolumeTableViewer(Composite parent) { - TableViewer tableViewer = CheckboxTableViewer.newCheckList(parent, SWT.FLAT | SWT.FULL_SELECTION | SWT.MULTI); + + private CheckboxTableViewer createVolumeTableViewer(Composite parent) { + CheckboxTableViewer tableViewer = CheckboxTableViewer.newCheckList(parent, SWT.FLAT | SWT.FULL_SELECTION + | SWT.MULTI); tableViewer.setLabelProvider(new VolumeTableLabelProvider()); tableViewer.setContentProvider(new EntityGroupContentProvider<Volume>()); setupVolumeTable(parent, tableViewer.getTable()); + // make sure that table selection is driven by checkbox selection + guiHelper.configureCheckboxTableViewer(tableViewer); + return tableViewer; } @@ -134,10 +138,10 @@ public class VolumesPage extends Composite { Composite tableViewerComposite = createTableViewerComposite(); tableViewer = createVolumeTableViewer(tableViewerComposite); site.setSelectionProvider(tableViewer); - + // Create a case insensitive filter for the table viewer using the filter text field guiHelper.createFilter(tableViewer, filterText, false); - tableViewer.setInput(volumes); + tableViewer.setInput(volumes); } /** @@ -155,7 +159,7 @@ public class VolumesPage extends Composite { TableColumnLayout tableColumnLayout = (TableColumnLayout) table.getParent().getLayout(); tableColumnLayout.setColumnData(column, new ColumnWeightData(weight)); } - + public void setInput(EntityGroup<Volume> volumes) { tableViewer.setInput(volumes); tableViewer.refresh(); diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/VolumesResource.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/VolumesResource.java index a2dfe2e3..c8796d27 100644 --- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/VolumesResource.java +++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/resources/VolumesResource.java @@ -371,16 +371,16 @@ public class VolumesResource { } @SuppressWarnings("rawtypes") - private Status cleanupDirectories(List<String> disks, String volumeName, int maxIndex, boolean deleteFlag) { - String serverName, diskName, diskInfo[]; + private Status cleanupDirectories(List<String> bricks, String volumeName, int maxIndex, boolean deleteFlag) { Status result; for (int i = 0; i < maxIndex; i++) { - diskInfo = disks.get(i).split(":"); - serverName = diskInfo[0]; - diskName = diskInfo[1]; + String[] brickInfo = bricks.get(i).split(":"); + String serverName = brickInfo[0]; + String brickDirectory = brickInfo[1]; + String mountPoint = brickDirectory.substring(0, brickDirectory.lastIndexOf("/")); Object response = serverUtil.executeOnServer(true, serverName, VOLUME_DIRECTORY_CLEANUP_SCRIPT + " " - + diskName + " " + volumeName + " " + (deleteFlag ? "-d" : ""), GenericResponse.class); + + mountPoint + " " + volumeName + " " + (deleteFlag ? "-d" : ""), GenericResponse.class); if (response instanceof GenericResponse) { result = ((GenericResponse) response).getStatus(); if (!result.isSuccess()) { |
