Statistiques
| Révision :

root / src / gZFS / gui.java @ 24

Historique | Voir | Annoter | Télécharger (145,56 ko)

1 14 kreverch
package gZFS;
2 14 kreverch
3 14 kreverch
import java.util.ArrayList;
4 14 kreverch
import java.util.Arrays;
5 14 kreverch
import java.util.Collections;
6 14 kreverch
import java.util.Date;
7 14 kreverch
import java.util.Hashtable;
8 14 kreverch
import java.util.List;
9 14 kreverch
10 14 kreverch
import org.apache.log4j.Level;
11 14 kreverch
import org.apache.log4j.Logger;
12 14 kreverch
import org.eclipse.jface.layout.TreeColumnLayout;
13 14 kreverch
import org.eclipse.swt.SWT;
14 14 kreverch
import org.eclipse.swt.custom.ScrolledComposite;
15 14 kreverch
import org.eclipse.swt.graphics.Color;
16 14 kreverch
import org.eclipse.swt.graphics.Font;
17 14 kreverch
import org.eclipse.swt.graphics.Image;
18 14 kreverch
import org.eclipse.swt.layout.FillLayout;
19 14 kreverch
import org.eclipse.swt.layout.GridData;
20 14 kreverch
import org.eclipse.swt.layout.GridLayout;
21 14 kreverch
import org.eclipse.swt.widgets.Button;
22 14 kreverch
import org.eclipse.swt.widgets.Combo;
23 14 kreverch
import org.eclipse.swt.widgets.Composite;
24 14 kreverch
import org.eclipse.swt.widgets.Display;
25 14 kreverch
import org.eclipse.swt.widgets.Event;
26 14 kreverch
import org.eclipse.swt.widgets.ExpandBar;
27 14 kreverch
import org.eclipse.swt.widgets.ExpandItem;
28 14 kreverch
import org.eclipse.swt.widgets.Group;
29 14 kreverch
import org.eclipse.swt.widgets.Label;
30 14 kreverch
import org.eclipse.swt.widgets.Listener;
31 14 kreverch
import org.eclipse.swt.widgets.Menu;
32 14 kreverch
import org.eclipse.swt.widgets.MenuItem;
33 14 kreverch
import org.eclipse.swt.widgets.MessageBox;
34 14 kreverch
import org.eclipse.swt.widgets.ProgressBar;
35 14 kreverch
import org.eclipse.swt.widgets.Shell;
36 14 kreverch
import org.eclipse.swt.widgets.TabFolder;
37 14 kreverch
import org.eclipse.swt.widgets.TabItem;
38 14 kreverch
import org.eclipse.swt.widgets.Table;
39 14 kreverch
import org.eclipse.swt.widgets.TableColumn;
40 14 kreverch
import org.eclipse.swt.widgets.TableItem;
41 14 kreverch
import org.eclipse.swt.widgets.Text;
42 14 kreverch
import org.eclipse.swt.widgets.Tree;
43 14 kreverch
import org.eclipse.swt.widgets.TreeItem;
44 14 kreverch
import org.eclipse.wb.swt.SWTResourceManager;
45 14 kreverch
import org.jfree.chart.JFreeChart;
46 14 kreverch
import org.jfree.data.general.PieDataset;
47 14 kreverch
import org.jfree. experimental.chart.swt.ChartComposite;
48 14 kreverch
49 14 kreverch
import com.ibm.icu.math.BigDecimal;
50 14 kreverch
51 14 kreverch
public class gui {
52 14 kreverch
53 14 kreverch
        private Logger log = Logger.getLogger(getClass().getPackage().getName()+" "+getClass().getCanonicalName());
54 14 kreverch
        private Composite compositeConfig;
55 14 kreverch
        private Composite compositeZpoolConfig;
56 14 kreverch
        private Composite compositeTabVolConfig;
57 14 kreverch
        private Composite compositeCreateVolFS;
58 14 kreverch
        private Composite compositeIscsi;
59 14 kreverch
        private Composite compositeSnapshot;
60 14 kreverch
        private Composite compositeReplica;
61 14 kreverch
        private Composite compositeWidgetCreateVolFS;
62 14 kreverch
        private Composite compositeWidgetDisks;
63 14 kreverch
        private Composite compositeDisks;
64 14 kreverch
65 14 kreverch
66 14 kreverch
        private Group groupCreateVolFS;
67 14 kreverch
        private Group groupActiveIscsi;
68 14 kreverch
        private Group groupDisks;
69 14 kreverch
        private ScrolledComposite scrolledCreateVol;
70 14 kreverch
        private ScrolledComposite scrolledDisks;
71 14 kreverch
        private ChartComposite chartVolumeComposite = null;
72 14 kreverch
        private ChartComposite chartZpoolProvionedComposite = null;
73 14 kreverch
        private ChartComposite chartZpoolUsedComposite = null;
74 14 kreverch
        private GridData gridDataChart;
75 14 kreverch
76 14 kreverch
        protected Shell shell;
77 14 kreverch
        private zfs zfs = new zfs();
78 14 kreverch
        private zfs zsnap = new zfs();
79 14 kreverch
        private guiTrt guiTrt = new guiTrt();
80 14 kreverch
        private Hashtable<String,Float> dataCharset = new Hashtable<String, Float>();
81 14 kreverch
82 14 kreverch
        private List<Object> zfsList;
83 14 kreverch
        private String keyProp;
84 14 kreverch
        private List<Label> labelsField= new ArrayList<Label>();
85 14 kreverch
        private List<Text> textsField= new ArrayList<Text>();
86 14 kreverch
        private List<Combo> combosField= new ArrayList<Combo>();
87 14 kreverch
88 14 kreverch
        private List<Label> labelsFieldServer= new ArrayList<Label>();
89 14 kreverch
        private List<Text> textsFieldServer= new ArrayList<Text>();
90 14 kreverch
        private List<Combo> combosFieldServer= new ArrayList<Combo>();
91 14 kreverch
92 14 kreverch
        private List<Label> labelsFieldPool= new ArrayList<Label>();
93 14 kreverch
        private List<Text> textsFieldPool = new ArrayList<Text>();
94 14 kreverch
        private List<Combo> combosFieldPool = new ArrayList<Combo>();
95 14 kreverch
96 14 kreverch
        private Combo comboType4CreateVolFS ;
97 14 kreverch
        private Combo comboZpool4CreateVolFS;
98 14 kreverch
99 14 kreverch
        private List<Label> labelsFieldCreateVol= new ArrayList<Label>();
100 14 kreverch
        private List<Text> textsFieldCreateVol = new ArrayList<Text>();
101 14 kreverch
        private List<Combo> combosFieldCreateVol = new ArrayList<Combo>();
102 14 kreverch
103 14 kreverch
        private List<Label> labelsFieldCreateIscsi= new ArrayList<Label>();
104 14 kreverch
        private List<Text> textsFieldCreateIscsi = new ArrayList<Text>();
105 14 kreverch
        private List<Combo> combosFieldCreateIscsi = new ArrayList<Combo>();
106 14 kreverch
107 14 kreverch
        private List<Label> labelsFieldAddIscsi= new ArrayList<Label>();
108 14 kreverch
        private List<Text> textsFieldAddIscsi = new ArrayList<Text>();
109 14 kreverch
        private List<Combo> combosFieldAddIscsi = new ArrayList<Combo>();
110 14 kreverch
        private List<TableColumn> tablecolumnsFieldAddIscsi = new ArrayList<TableColumn>();
111 14 kreverch
        private Table tableIscsiSession;
112 14 kreverch
113 14 kreverch
114 14 kreverch
        private List<Label> labelsFieldSnapshots= new ArrayList<Label>();
115 14 kreverch
        private List<Text> textsFieldSnapshots = new ArrayList<Text>();
116 14 kreverch
        private List<Label> labelsFieldSnapshotsValue= new ArrayList<Label>();
117 14 kreverch
        private List< org.eclipse.swt.widgets.List > listsFieldSnaphots = new ArrayList<org.eclipse.swt.widgets.List >();
118 14 kreverch
119 14 kreverch
120 14 kreverch
        private List<Label> labelsFieldReplica= new ArrayList<Label>();
121 14 kreverch
        private List<Text> textsFieldReplica = new ArrayList<Text>();
122 14 kreverch
        private List<Label> labelsFieldReplicaValue= new ArrayList<Label>();
123 14 kreverch
        private List< org.eclipse.swt.widgets.List > listsFieldReplica = new ArrayList<org.eclipse.swt.widgets.List >();
124 14 kreverch
        private List<Combo> combosFieldReplica = new ArrayList<Combo>();
125 14 kreverch
126 14 kreverch
        private List<Label> labelsFieldZRaid= new ArrayList<Label>();
127 14 kreverch
        private List<Label> labelsFieldDisks= new ArrayList<Label>();
128 14 kreverch
129 14 kreverch
        private Image imageStorage= SWTResourceManager.getImage(gui.class, "/images/storage-32px.png");
130 14 kreverch
        private Image imageServerOnline = SWTResourceManager.getImage(gui.class, "/images/enable-server-icon-32px.png");
131 14 kreverch
        private Image imageServerOffline = SWTResourceManager.getImage(gui.class, "/images/off-server-32px.png");
132 14 kreverch
        private Image imageStorageOnline = SWTResourceManager.getImage(gui.class, "/images/storage-32px.png");
133 14 kreverch
        private Image imageStorageOffline = SWTResourceManager.getImage(gui.class, "/images/storage-offline-32px.png");
134 14 kreverch
        private Image imageFSOnline = SWTResourceManager.getImage(gui.class, "/images/zfs-fs-online-32px.png");
135 14 kreverch
        private Image imageFSOffline = SWTResourceManager.getImage(gui.class, "/images/zfs-fs-offline-32px.png");
136 14 kreverch
        private Image imageStorageServer = SWTResourceManager.getImage(gui.class, "/images/storage-server-32px.png");
137 14 kreverch
        private Image imageSnapshotOnline = SWTResourceManager.getImage(gui.class, "/images/snapshot-32px.png");
138 14 kreverch
        private Image imageSnapshotOffline = SWTResourceManager.getImage(gui.class, "/images/snapshot-offline-32px.png");
139 14 kreverch
        private Image imageHardDisk = SWTResourceManager.getImage(gui.class, "/images/hard-disk-72px.png");
140 14 kreverch
        private Image imageHardDiskOffline = SWTResourceManager.getImage(gui.class, "/images/hard-disk-offline-72px.png");
141 14 kreverch
        private Image imageHardDiskOnline = SWTResourceManager.getImage(gui.class, "/images/hard-disk-online-72px.png");
142 14 kreverch
143 14 kreverch
        private Color labelTitleBackgroundColor = Display.getCurrent().getSystemColor(SWT.COLOR_TITLE_BACKGROUND_GRADIENT);
144 14 kreverch
        private Color labelFieldBackgroundColor = Display.getCurrent().getSystemColor(SWT.COLOR_WHITE);
145 14 kreverch
        private Color textFieldBackgroundColor = Display.getCurrent().getSystemColor(SWT.COLOR_WHITE);
146 14 kreverch
        private Color groupBackgroundColor = Display.getCurrent().getSystemColor(SWT.COLOR_WHITE);
147 14 kreverch
        private Color compositeBackgroundColor = Display.getCurrent().getSystemColor(SWT.COLOR_WHITE);
148 14 kreverch
        private Color tabFolderBackgroundColor = Display.getCurrent().getSystemColor(SWT.COLOR_TITLE_BACKGROUND_GRADIENT);
149 14 kreverch
        private Color tabFolderForegroundColor = Display.getCurrent().getSystemColor(SWT.COLOR_BLACK);
150 14 kreverch
151 14 kreverch
        private Tree tree;
152 14 kreverch
        private Tree treeZpool;
153 14 kreverch
        private Tree treeSnapshots;
154 14 kreverch
        private TabFolder tabFolderNav;
155 14 kreverch
        private TabFolder tabFolderConfig;
156 14 kreverch
        private TabItem tbtmConfig;
157 14 kreverch
        private TabItem tbtmZpoolConfig;
158 14 kreverch
        private TabItem tbtmSettings;
159 14 kreverch
        private TabItem tbtmCreateVolFS;
160 14 kreverch
        private TabItem tbtmIscsi;
161 14 kreverch
        private TabItem tbtmSnapshot;
162 14 kreverch
        private TabItem tbtmReplica;
163 14 kreverch
        private TabItem tbtmDisks;
164 14 kreverch
165 14 kreverch
        private Font fontTitle ;
166 14 kreverch
        private Font fontSubTitle ;
167 14 kreverch
        private Font fontWidget;
168 14 kreverch
        private List<Object> zpoolList;
169 14 kreverch
        private Button btnConnectServer;
170 14 kreverch
        private Button btnCreateZfsVolFS;
171 14 kreverch
        private Thread thrConnect;
172 14 kreverch
        private Thread thrCheck;
173 14 kreverch
        private Thread thrCreateZFSVol;
174 14 kreverch
        private Thread thrZpool;
175 14 kreverch
        private Thread thrGetallZvol;
176 14 kreverch
        private Thread thrZfsList;
177 14 kreverch
        private guiProgress wPB;
178 14 kreverch
179 14 kreverch
180 14 kreverch
        private String strItemServer ="";
181 14 kreverch
        private String strItemZvolFS ="";
182 14 kreverch
        private int countItem=0;
183 14 kreverch
        private String infoUsedSize="";
184 14 kreverch
185 14 kreverch
186 14 kreverch
        Menu treeZFSMenu;
187 14 kreverch
188 14 kreverch
        /**
189 14 kreverch
         * Launch the application.
190 14 kreverch
         * @param args
191 14 kreverch
         */
192 14 kreverch
        public static void main(String[] args) {
193 14 kreverch
                try {
194 14 kreverch
                        gui window = new gui();
195 14 kreverch
                        window.open();
196 14 kreverch
197 14 kreverch
                } catch (Exception e) {
198 14 kreverch
                        e.printStackTrace();
199 14 kreverch
                }
200 14 kreverch
        }
201 14 kreverch
202 14 kreverch
        /**
203 14 kreverch
         * Open the window.
204 14 kreverch
         */
205 14 kreverch
        public void open() {
206 14 kreverch
                log.setLevel((Level) Level.DEBUG);
207 14 kreverch
                Display display = Display.getDefault();
208 14 kreverch
209 14 kreverch
                createContents(shell);
210 14 kreverch
211 14 kreverch
                shell.open();
212 14 kreverch
                shell.layout();
213 14 kreverch
                wPB = new guiProgress(shell.getDisplay(), shell.getLocation().x, shell.getLocation().y);
214 14 kreverch
                shell.addListener(SWT.Close, new Listener() {
215 14 kreverch
                        public void handleEvent(final Event event) {
216 14 kreverch
                                zfs.disconnectServer();
217 14 kreverch
                        }
218 14 kreverch
                });
219 14 kreverch
                while (!shell.isDisposed()) {
220 14 kreverch
                        if (!display.readAndDispatch()) {
221 14 kreverch
222 14 kreverch
                                display.sleep();
223 14 kreverch
                        }
224 14 kreverch
                }
225 14 kreverch
        }
226 14 kreverch
227 14 kreverch
        /**
228 14 kreverch
         * Create contents of the window.
229 14 kreverch
         */
230 14 kreverch
        protected void createContents(Composite parent) {
231 14 kreverch
                shell = new Shell();
232 14 kreverch
                shell.setSize(SWT.MAX, SWT.MAX);
233 14 kreverch
                shell.setText("gZFS : a GUI for ZFS");
234 14 kreverch
                //shell.layout();
235 14 kreverch
                shell.setLayout(new FillLayout(SWT.HORIZONTAL));
236 14 kreverch
237 14 kreverch
                fontTitle = new Font(shell.getDisplay(), "Calibri", 14, SWT.BOLD);
238 14 kreverch
                fontSubTitle = new Font(shell.getDisplay(), "Calibri", 10, SWT.BOLD);
239 14 kreverch
                fontWidget = new Font(shell.getDisplay(), "Calibri", 10, SWT.NONE);
240 14 kreverch
                tabFolderNav = new TabFolder(shell, SWT.UP);
241 14 kreverch
                tabFolderNav.setBounds(0, 0, 200, 200);
242 14 kreverch
                tabFolderNav.setBackground(tabFolderBackgroundColor);
243 14 kreverch
                tabFolderNav.setForeground(tabFolderForegroundColor);
244 14 kreverch
245 14 kreverch
                /******************************************************************************
246 14 kreverch
                 * CREATE TAB : GENERAL
247 14 kreverch
                 ******************************************************************************/
248 14 kreverch
249 14 kreverch
                TabItem tbtmGen = new TabItem(tabFolderNav, SWT.NONE);
250 14 kreverch
                //tbtmGen.setImage(SWTResourceManager.getImage(gui.class, "/images/accept-database-icon.png"));
251 14 kreverch
                tbtmGen.setText("General");
252 14 kreverch
253 14 kreverch
254 14 kreverch
                Composite compositeTabNavGen = new Composite(tabFolderNav, SWT.NONE);
255 14 kreverch
                tbtmGen.setControl(compositeTabNavGen);
256 14 kreverch
                GridLayout gridLayout = new GridLayout();
257 14 kreverch
                compositeTabNavGen.setLayout(gridLayout);
258 14 kreverch
                compositeTabNavGen.setBackground(tabFolderBackgroundColor);
259 14 kreverch
260 14 kreverch
                treeZpool = new Tree(compositeTabNavGen, SWT.BORDER|SWT.V_SCROLL);
261 14 kreverch
                GridData gd_treeZpool = new GridData(GridData.FILL,GridData.FILL, true, true);
262 14 kreverch
                gd_treeZpool.heightHint = 50;
263 14 kreverch
                treeZpool.setLayoutData(gd_treeZpool);
264 14 kreverch
                treeZpool.addListener(SWT.Selection, new Listener() {
265 14 kreverch
                        public void handleEvent(final Event event) {
266 14 kreverch
                                //log.debug(treeZpool.getSelection()[0].getText());
267 14 kreverch
                                TreeItem root = (TreeItem) event.item;
268 14 kreverch
269 14 kreverch
                                if ( root.getParentItem() != null){
270 14 kreverch
                                        zfs.getServer(root.getParentItem().getData().toString());
271 14 kreverch
                                        zfs.zpoolGetAll(root.getData().toString());
272 14 kreverch
                                        refreshInfoZpool();
273 14 kreverch
                                        refreshDisks();
274 14 kreverch
275 14 kreverch
                                }else{
276 14 kreverch
                                        zfs.getServer(root.getData().toString());
277 14 kreverch
                                        refreshInfoServer();
278 14 kreverch
279 14 kreverch
                                }
280 14 kreverch
                        }
281 14 kreverch
                }
282 14 kreverch
                                );
283 14 kreverch
                //Init Server List in Tree
284 14 kreverch
                refreshTreeZpoolList();
285 14 kreverch
286 14 kreverch
                Group groupServerConfig= new Group(compositeTabNavGen,SWT.NONE);
287 14 kreverch
                groupServerConfig.setBackground(groupBackgroundColor);
288 14 kreverch
                groupServerConfig.setLayout(new GridLayout());
289 14 kreverch
                GridData gridDataServerConfig=new GridData(GridData.FILL_HORIZONTAL);
290 14 kreverch
                gridDataServerConfig.heightHint=500;
291 14 kreverch
                gridDataServerConfig.minimumHeight=500;
292 14 kreverch
                groupServerConfig.setLayoutData(gridDataServerConfig);
293 14 kreverch
294 14 kreverch
                ScrolledComposite scrolledServerConfig=new ScrolledComposite(groupServerConfig,SWT.V_SCROLL);
295 14 kreverch
                scrolledServerConfig.setLayoutData(new GridData(GridData.FILL_BOTH));
296 14 kreverch
                Composite compositeWidget=new Composite(scrolledServerConfig,SWT.NONE);
297 14 kreverch
                compositeWidget.setBackground(compositeBackgroundColor);
298 14 kreverch
                GridLayout gridLayoutWidget = new GridLayout();
299 14 kreverch
                gridLayoutWidget.numColumns =2;
300 14 kreverch
                compositeWidget.setLayout(gridLayoutWidget);
301 14 kreverch
302 14 kreverch
303 14 kreverch
                GridData gridDataTitleServerConfig = new GridData(GridData.FILL, GridData.CENTER, true, false);
304 14 kreverch
                gridDataTitleServerConfig.horizontalSpan = 2;
305 14 kreverch
                Label lblTitleServerConfig = new Label(compositeWidget, SWT.CENTER|SWT.BORDER);
306 14 kreverch
                lblTitleServerConfig.setLayoutData(gridDataTitleServerConfig);
307 14 kreverch
                lblTitleServerConfig.setFont(fontTitle);
308 14 kreverch
                lblTitleServerConfig.setBackground(labelTitleBackgroundColor);
309 14 kreverch
                lblTitleServerConfig.setText("Server Configuration");
310 14 kreverch
311 14 kreverch
312 14 kreverch
                String[] keysProp = (String[]) zfs.getZserver().zProperties.keySet().toArray(new String[0]);
313 14 kreverch
                Arrays.sort(keysProp);
314 14 kreverch
                labelsFieldServer.clear();
315 14 kreverch
                textsFieldServer.clear();
316 14 kreverch
                combosFieldServer.clear();
317 14 kreverch
                for (int i = 0; i < keysProp.length; i++) {
318 14 kreverch
                        keyProp = keysProp[i];
319 14 kreverch
320 14 kreverch
321 14 kreverch
322 14 kreverch
                        if ( "freeentry".equalsIgnoreCase(zfs.getZserver().zProperties.get(keyProp).getType())){
323 14 kreverch
                                Label lbl = new Label(compositeWidget, SWT.NONE);
324 14 kreverch
                                lbl.setFont(fontWidget);
325 14 kreverch
                                lbl.setBackground(labelFieldBackgroundColor);
326 14 kreverch
                                lbl.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
327 14 kreverch
                                lbl.setText(zfs.getZserver().zProperties.get(keyProp).getLabelProperty());
328 14 kreverch
                                if (keyProp.equals("userPasswd")){
329 14 kreverch
                                        textsFieldServer.add(new Text(compositeWidget,  SWT.PASSWORD | SWT.BORDER));
330 14 kreverch
                                }else{
331 14 kreverch
                                        textsFieldServer.add(new Text(compositeWidget, SWT.WRAP|SWT.BORDER));
332 14 kreverch
333 14 kreverch
                                }
334 14 kreverch
335 14 kreverch
                                textsFieldServer.get(textsFieldServer.size()-1).setBackground(textFieldBackgroundColor);
336 14 kreverch
                                textsFieldServer.get(textsFieldServer.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
337 14 kreverch
                                //textsField.get(textsField.size()-1).setText(zfs.getZserver().zProperties.get(keyProp).getNameProperty());
338 14 kreverch
                                textsFieldServer.get(textsFieldServer.size()-1).setData(zfs.getZserver().zProperties.get(keyProp).getNameProperty());
339 14 kreverch
340 14 kreverch
                        }else{
341 14 kreverch
342 14 kreverch
                                if ( "nofreeentry".equalsIgnoreCase(zfs.getZserver().zProperties.get(keyProp).getType())){
343 14 kreverch
                                        Label lbl = new Label(compositeWidget, SWT.NONE);
344 14 kreverch
                                        lbl.setFont(fontWidget);
345 14 kreverch
                                        lbl.setBackground(labelFieldBackgroundColor);
346 14 kreverch
                                        lbl.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
347 14 kreverch
                                        lbl.setText(zfs.getZserver().zProperties.get(keyProp).getLabelProperty());
348 14 kreverch
349 14 kreverch
                                        combosFieldServer.add(new Combo(compositeWidget, SWT.NONE));
350 14 kreverch
                                        combosFieldServer.get(combosFieldServer.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
351 14 kreverch
                                        combosFieldServer.get(combosFieldServer.size()-1).setData(zfs.getZserver().zProperties.get(keyProp).getNameProperty());
352 14 kreverch
                                        //combosField.get(combosField.size()-1).setText(zfs.getZserver().zProperties.get(keyProp).getValue());
353 14 kreverch
                                        String[] keysPermitValue = (String[]) zfs.getZserver().zProperties.get(keyProp).getPermitValue().keySet().toArray(new String[0]);
354 14 kreverch
                                        for (int cpt=0;cpt <zfs.getZserver().zProperties.get(keyProp).getPermitValue().size();cpt++){
355 14 kreverch
                                                String keyPermiValue = keysPermitValue[cpt];
356 14 kreverch
                                                combosFieldServer.get(combosFieldServer.size()-1).add(zfs.getZserver().zProperties.get(keyProp).getPermitValue().get(keyPermiValue).toString());
357 14 kreverch
                                        }
358 14 kreverch
                                }
359 14 kreverch
                        }
360 14 kreverch
361 14 kreverch
                }
362 14 kreverch
363 14 kreverch
                Button btnAddServer = new Button(compositeWidget, SWT.NONE);
364 14 kreverch
                btnAddServer.setText("Add ZFS Server");
365 14 kreverch
                btnAddServer.addListener(SWT.Selection, new Listener() {
366 14 kreverch
                        public void handleEvent(final Event event) {
367 14 kreverch
368 14 kreverch
                                String[] keysProp = zfs.getZserver().zProperties.keySet().toArray(new String[0]);
369 14 kreverch
                                //String[] keysProp = (String[]) zfs.getZserver().zProperties.keySet().toArray(new String[0]);
370 14 kreverch
                                Arrays.sort(keysProp);
371 14 kreverch
372 14 kreverch
                                for (int i = 0; i < keysProp.length; i++) {
373 14 kreverch
                                        keyProp = keysProp[i];
374 14 kreverch
                                        for (int cpt=0;cpt<textsFieldServer.size();cpt++){
375 14 kreverch
                                                if (keyProp.equalsIgnoreCase(textsFieldServer.get(cpt).getData().toString())) {
376 14 kreverch
                                                        log.debug(keyProp+" "+textsFieldServer.get(cpt).getText());
377 14 kreverch
                                                        if (keyProp.equals("userPasswd")){
378 14 kreverch
                                                                zfs.getZserver().zProperties.get(keyProp).setValue("");
379 14 kreverch
                                                        }else{
380 14 kreverch
                                                                zfs.getZserver().zProperties.get(keyProp).setValue(textsFieldServer.get(cpt).getText());
381 14 kreverch
                                                        }
382 14 kreverch
383 14 kreverch
                                                }
384 14 kreverch
                                        }
385 14 kreverch
                                }
386 14 kreverch
                                zfs.addServer();
387 14 kreverch
388 14 kreverch
                                boolean checkExistInTree=false;
389 14 kreverch
                                for (int ind=0;ind<treeZpool.getItemCount();ind++){
390 14 kreverch
                                        log.debug("refreshTreeZpoolList "+treeZpool.getItem(ind).getData().toString()+" "+zfs.getZserver().zProperties.get("serverIP").getValue());
391 14 kreverch
                                        if ( treeZpool.getItem(ind).getData().toString().equalsIgnoreCase(zfs.getZserver().zProperties.get("serverIP").getValue())){
392 14 kreverch
                                                checkExistInTree=true;
393 14 kreverch
                                        }
394 14 kreverch
                                }
395 14 kreverch
                                if ( ! checkExistInTree ){
396 14 kreverch
                                        TreeItem rootTreeZvolFS = new TreeItem(treeZpool,SWT.None);
397 14 kreverch
                                        rootTreeZvolFS.setText(zfs.getZserver().zProperties.get("serverIP").getValue());
398 14 kreverch
                                        rootTreeZvolFS.setData(zfs.getZserver().zProperties.get("serverIP").getValue());
399 14 kreverch
                                        rootTreeZvolFS.setImage(imageServerOffline);
400 14 kreverch
                                }
401 14 kreverch
                        }
402 14 kreverch
                });
403 14 kreverch
404 14 kreverch
                Button btnRemoveServer = new Button(compositeWidget, SWT.NONE);
405 14 kreverch
                btnRemoveServer.setText("Remove ZFS Server");
406 14 kreverch
                btnRemoveServer.addListener(SWT.Selection, new Listener() {
407 14 kreverch
                        public void handleEvent(final Event event) {
408 14 kreverch
                                if ( treeZpool.getParentItem() == null){
409 14 kreverch
                                        if ( treeZpool.getSelectionCount() !=0){
410 14 kreverch
411 14 kreverch
                                                zfs.getZserver().zProperties.get("serverIP").setValue(treeZpool.getSelection()[0].getData().toString());
412 14 kreverch
                                                for (int cptTree=0;cptTree<tree.getItemCount();cptTree++){
413 14 kreverch
                                                        if (tree.getItem(cptTree).getData().equals(zfs.getZserver().zProperties.get("serverIP").getValue())){
414 14 kreverch
                                                                tree.getItem(cptTree).removeAll();
415 14 kreverch
                                                                tree.getItem(cptTree).dispose();
416 14 kreverch
                                                        }
417 14 kreverch
                                                }
418 14 kreverch
                                                zfs.removeServer();
419 14 kreverch
                                                treeZpool.getSelection()[0].dispose();
420 14 kreverch
421 14 kreverch
                                        }
422 14 kreverch
                                }
423 14 kreverch
424 14 kreverch
                        }
425 14 kreverch
                });
426 14 kreverch
427 14 kreverch
                btnConnectServer = new Button(compositeWidget,SWT.NONE);
428 14 kreverch
                GridData gridDataBtnServerConfig = new GridData(GridData.FILL, GridData.CENTER, true, false);
429 14 kreverch
                gridDataBtnServerConfig.horizontalSpan = 2;
430 14 kreverch
                btnConnectServer.setLayoutData(gridDataBtnServerConfig);
431 14 kreverch
                btnConnectServer.setText("Connect");
432 14 kreverch
                btnConnectServer.addListener(SWT.Selection, new Listener() {
433 14 kreverch
                        public void handleEvent(final Event event) {
434 14 kreverch
435 14 kreverch
436 14 kreverch
437 14 kreverch
                                if (treeZpool.getSelectionCount() !=0 ){
438 14 kreverch
                                        final TreeItem root = (TreeItem) treeZpool.getSelection()[0];
439 14 kreverch
                                        if ( root.getParentItem() ==null ){
440 14 kreverch
441 14 kreverch
                                                String[] keysProp = zfs.getZserver().zProperties.keySet().toArray(new String[0]);
442 14 kreverch
                                                //String[] keysProp = (String[]) zfs.getZserver().zProperties.keySet().toArray(new String[0]);
443 14 kreverch
                                                Arrays.sort(keysProp);
444 14 kreverch
445 14 kreverch
                                                for (int i = 0; i < keysProp.length; i++) {
446 14 kreverch
                                                        keyProp = keysProp[i];
447 14 kreverch
                                                        for (int cpt=0;cpt<textsFieldServer.size();cpt++){
448 14 kreverch
                                                                if (keyProp.equalsIgnoreCase(textsFieldServer.get(cpt).getData().toString())) {
449 14 kreverch
                                                                        zfs.getZserver().zProperties.get(keyProp).setValue(textsFieldServer.get(cpt).getText());
450 14 kreverch
                                                                }
451 14 kreverch
                                                        }
452 14 kreverch
                                                }
453 14 kreverch
                                                if ( !zfs.getCacheSession().containsKey(zfs.getZserver().zProperties.get("serverIP").getValue()) && zfs.connectServer(zfs.getZserver().zProperties.get("serverIP").getValue(), 22, zfs.getZserver().zProperties.get("userLogin").getValue(), zfs.getZserver().zProperties.get("userPasswd").getValue())){
454 14 kreverch
455 14 kreverch
                                                        thrCheck = new Thread(new Runnable(){
456 14 kreverch
                                                                public void run() {
457 14 kreverch
                                                                        Display.getDefault().syncExec(new Runnable() {
458 14 kreverch
                                                                                public void run() {
459 14 kreverch
                                                                                        if (wPB.s.isDisposed()){
460 14 kreverch
                                                                                                wPB = new guiProgress(shell.getDisplay(), shell.getLocation().x, shell.getLocation().y);
461 14 kreverch
                                                                                                wPB.open();
462 14 kreverch
                                                                                        }else{
463 14 kreverch
                                                                                                wPB.open();
464 14 kreverch
                                                                                        }
465 14 kreverch
                                                                                        btnConnectServer.setEnabled(false);
466 14 kreverch
                                                                                        tabFolderNav.setEnabled(false);
467 14 kreverch
                                                                                        refreshDisks();
468 14 kreverch
                                                                                }
469 14 kreverch
                                                                        });
470 14 kreverch
                                                                        zfs.checkBinEnv();
471 14 kreverch
                                                                        Display.getDefault().syncExec(new Runnable(){
472 14 kreverch
                                                                                public void run(){
473 14 kreverch
                                                                                        log.debug(zfs.getError());
474 14 kreverch
475 14 kreverch
                                                                                        log.debug(zfs.getZserver().zProperties.get("serverIP").getValue()+" connected");
476 14 kreverch
                                                                                        if ( zfs.getError().size() ==0){
477 14 kreverch
                                                                                                zsnap = zfs;
478 14 kreverch
479 14 kreverch
                                                                                                refreshTreeZpoolList();
480 14 kreverch
481 14 kreverch
482 14 kreverch
                                                                                        }else{
483 14 kreverch
                                                                                                String[] keysPropError = zfs.getError().keySet().toArray(new String[0]);
484 14 kreverch
                                                                                                //String[] keysProp = (String[]) zfs.getZserver().zProperties.keySet().toArray(new String[0]);
485 14 kreverch
                                                                                                Arrays.sort(keysPropError);
486 14 kreverch
                                                                                                String textBox = "";
487 14 kreverch
                                                                                                for (int i = 0; i < keysPropError.length; i++) {
488 14 kreverch
                                                                                                        String keyPropError = keysPropError[i];
489 14 kreverch
                                                                                                        textBox = textBox +zfs.getError().get(keyPropError)+".\n";
490 14 kreverch
                                                                                                }
491 14 kreverch
492 14 kreverch
                                                                                                MessageBox messageBoxInfo = new MessageBox(shell, SWT.DIALOG_TRIM);
493 14 kreverch
                                                                                                messageBoxInfo.setText("Warning");
494 14 kreverch
                                                                                                messageBoxInfo.setMessage(textBox);
495 14 kreverch
                                                                                                messageBoxInfo.open();
496 14 kreverch
                                                                                                btnConnectServer.setEnabled(true);
497 14 kreverch
                                                                                                tabFolderNav.setEnabled(true);
498 14 kreverch
                                                                                                wPB.close();
499 14 kreverch
500 14 kreverch
                                                                                        }
501 14 kreverch
502 14 kreverch
                                                                                }
503 14 kreverch
                                                                        });
504 14 kreverch
505 14 kreverch
                                                                }
506 14 kreverch
                                                        });
507 14 kreverch
                                                        thrCheck.start();
508 14 kreverch
                                                        wPB.close();
509 14 kreverch
510 14 kreverch
511 14 kreverch
                                                }
512 14 kreverch
                                        }
513 14 kreverch
514 14 kreverch
                                }
515 14 kreverch
516 14 kreverch
                        }
517 14 kreverch
                });
518 14 kreverch
519 14 kreverch
                for (int i = 0; i < keysProp.length; i++) {
520 14 kreverch
                        keyProp = keysProp[i];
521 14 kreverch
                        if ( "noupdateable".equalsIgnoreCase(zfs.getZserver().zProperties.get(keyProp).getType())) {
522 14 kreverch
                                Label lbl = new Label(compositeWidget, SWT.NONE);
523 14 kreverch
                                lbl.setFont(fontWidget);
524 14 kreverch
                                lbl.setBackground(labelFieldBackgroundColor);
525 14 kreverch
                                lbl.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
526 14 kreverch
                                lbl.setText(zfs.getZserver().zProperties.get(keyProp).getLabelProperty());
527 14 kreverch
528 14 kreverch
                                labelsFieldServer.add(new Label(compositeWidget, SWT.NONE));
529 14 kreverch
                                labelsFieldServer.get(labelsFieldServer.size()-1).setBackground(labelFieldBackgroundColor);
530 14 kreverch
                                labelsFieldServer.get(labelsFieldServer.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
531 14 kreverch
                                //labelsField.get(labelsField.size()-1).setText(zfs.getZserver().zProperties.get(keyProp).getNameProperty());
532 14 kreverch
                                labelsFieldServer.get(labelsFieldServer.size()-1).setData(zfs.getZserver().zProperties.get(keyProp).getNameProperty());
533 14 kreverch
                        }
534 14 kreverch
                }
535 14 kreverch
536 14 kreverch
                scrolledServerConfig.setContent(compositeWidget);
537 14 kreverch
                scrolledServerConfig.setExpandVertical(true);
538 14 kreverch
                scrolledServerConfig.setExpandHorizontal(true);
539 14 kreverch
                scrolledServerConfig.setMinSize(compositeWidget.computeSize(SWT.DEFAULT,SWT.DEFAULT));
540 14 kreverch
541 14 kreverch
                TabItem tabItem = new TabItem(tabFolderNav, SWT.NONE);
542 14 kreverch
                tabItem.setText("Volumes and File System");
543 14 kreverch
                tabItem.setData("volandfs");
544 14 kreverch
545 14 kreverch
                compositeTabVolConfig = new Composite(tabFolderNav, SWT.NONE);
546 14 kreverch
                tabItem.setControl(compositeTabVolConfig);
547 14 kreverch
                compositeTabVolConfig.setLayout(new GridLayout());
548 14 kreverch
                compositeTabVolConfig.setBackground(tabFolderBackgroundColor);
549 14 kreverch
                tree = new Tree(compositeTabVolConfig, SWT.BORDER);
550 14 kreverch
                //t.minimumHeight=100;
551 14 kreverch
                GridData gd_tree = new GridData(GridData.FILL,GridData.FILL, true, true);
552 14 kreverch
                gd_tree.heightHint = 500;
553 14 kreverch
                tree.setLayoutData(gd_tree);
554 14 kreverch
555 14 kreverch
556 14 kreverch
                tree.addListener(SWT.Selection, new Listener() {
557 14 kreverch
                        public void handleEvent(final Event event) {
558 14 kreverch
559 14 kreverch
                                final TreeItem root = (TreeItem) event.item;
560 14 kreverch
                                if ( root.getParentItem() != null){
561 14 kreverch
                                        wPB = new guiProgress(shell.getDisplay(), shell.getLocation().x, shell.getLocation().y);
562 14 kreverch
                                        actionClickTree(event);
563 14 kreverch
                                }
564 14 kreverch
                        }
565 14 kreverch
                });
566 14 kreverch
567 14 kreverch
568 14 kreverch
                tabFolderConfig = new TabFolder(shell, SWT.UP);
569 14 kreverch
                tabFolderConfig.setBounds(200, 0, 200, 200);
570 14 kreverch
                tabFolderConfig.setBackground(tabFolderBackgroundColor);
571 14 kreverch
                tabFolderConfig.setForeground(tabFolderForegroundColor);
572 14 kreverch
                createTabItemZpoolConfig();
573 14 kreverch
                createTabItemCreateVol();
574 14 kreverch
                createTabItemDisks();
575 14 kreverch
                tabFolderNav.addListener(SWT.Selection, new Listener() {
576 14 kreverch
                        public void handleEvent(final Event event) {
577 14 kreverch
                                if (tabFolderNav.getSelection()[0].getText().equalsIgnoreCase("general")){
578 14 kreverch
                                        thrZpool = new Thread(new Runnable(){
579 14 kreverch
                                                public void run() {
580 14 kreverch
                                                        Display.getDefault().syncExec(new Runnable() {
581 14 kreverch
                                                                public void run() {
582 14 kreverch
                                                                        if (wPB.s.isDisposed()){
583 14 kreverch
                                                                                wPB = new guiProgress(shell.getDisplay(), shell.getLocation().x, shell.getLocation().y);
584 14 kreverch
                                                                                wPB.open();
585 14 kreverch
                                                                        }else{
586 14 kreverch
                                                                                wPB.open();
587 14 kreverch
                                                                        }
588 14 kreverch
589 14 kreverch
                                                                }
590 14 kreverch
                                                        });
591 14 kreverch
592 14 kreverch
                                                        Display.getDefault().syncExec(new Runnable() {
593 14 kreverch
                                                                public void run() {
594 14 kreverch
                                                                        if (!"".equals(zfs.getZpool().zProperties.get("name").getValue())){
595 14 kreverch
                                                                                if (treeZpool.getSelection()[0].getParentItem() != null){
596 14 kreverch
                                                                                        if (treeZpool.getSelectionCount()>0){
597 14 kreverch
                                                                                                TreeItem zpoolSelect = treeZpool.getSelection()[0];
598 14 kreverch
                                                                                                treeZpool.select(zpoolSelect);
599 14 kreverch
                                                                                                zfs.getZserver().zProperties.get("serverIP").setValue(treeZpool.getSelection()[0].getParentItem().getData().toString());
600 14 kreverch
                                                                                                zfs.zpoolGetAll(zfs.getZpool().zProperties.get("name").getValue());
601 14 kreverch
                                                                                        }
602 14 kreverch
                                                                                }
603 14 kreverch
604 14 kreverch
                                                                        }
605 14 kreverch
                                                                        if ( !tbtmConfig.isDisposed()){
606 14 kreverch
                                                                                tbtmConfig.dispose();
607 14 kreverch
                                                                                tabFolderConfig.layout();
608 14 kreverch
                                                                        }
609 14 kreverch
610 14 kreverch
611 14 kreverch
                                                                        if ( !tbtmIscsi.isDisposed()){
612 14 kreverch
                                                                                tbtmIscsi.dispose();
613 14 kreverch
                                                                                tabFolderConfig.layout();
614 14 kreverch
                                                                        }
615 14 kreverch
616 14 kreverch
                                                                        if ( !tbtmSnapshot.isDisposed()){
617 14 kreverch
                                                                                tbtmSnapshot.dispose();
618 14 kreverch
                                                                                tabFolderConfig.layout();
619 14 kreverch
                                                                        }
620 14 kreverch
                                                                        if ( !tbtmReplica.isDisposed()){
621 14 kreverch
                                                                                tbtmReplica.dispose();
622 14 kreverch
                                                                                tabFolderConfig.layout();
623 14 kreverch
                                                                        }
624 14 kreverch
                                                                        createTabItemZpoolConfig();
625 14 kreverch
                                                                        refreshInfoZpool();
626 14 kreverch
                                                                        compositeZpoolConfig.layout();
627 14 kreverch
                                                                        zfs.setZvol();
628 14 kreverch
                                                                        createTabItemCreateVol();
629 14 kreverch
                                                                        compositeCreateVolFS.layout();
630 14 kreverch
631 14 kreverch
                                                                        createTabItemDisks();
632 14 kreverch
                                                                        refreshDisks();
633 14 kreverch
                                                                        compositeDisks.layout();
634 14 kreverch
635 14 kreverch
                                                                        wPB.close();
636 14 kreverch
                                                                }
637 14 kreverch
                                                        });
638 14 kreverch
                                                }
639 14 kreverch
                                        });
640 14 kreverch
                                        thrZpool.start();
641 14 kreverch
                                }
642 14 kreverch
                                if (tabFolderNav.getSelection()[0].getText().equalsIgnoreCase("Volumes and File System")){
643 14 kreverch
                                        thrZfsList = new Thread(new Runnable(){
644 14 kreverch
                                                public void run() {
645 14 kreverch
                                                        Display.getDefault().syncExec(new Runnable() {
646 14 kreverch
                                                                public void run() {
647 14 kreverch
                                                                        if ( !tbtmZpoolConfig.isDisposed()){
648 14 kreverch
                                                                                tbtmZpoolConfig.dispose();
649 14 kreverch
                                                                                tabFolderConfig.layout();
650 14 kreverch
                                                                        }
651 14 kreverch
                                                                        if ( !tbtmCreateVolFS.isDisposed()){
652 14 kreverch
                                                                                tbtmCreateVolFS.dispose();
653 14 kreverch
                                                                                tabFolderConfig.layout();
654 14 kreverch
                                                                        }
655 14 kreverch
                                                                        if ( !tbtmDisks.isDisposed()){
656 14 kreverch
                                                                                tbtmDisks.dispose();
657 14 kreverch
                                                                                tabFolderConfig.layout();
658 14 kreverch
                                                                        }
659 14 kreverch
                                                                        //zfs.setZvol();
660 14 kreverch
                                                                        if ( tree.getSelectionCount() >0){
661 14 kreverch
662 14 kreverch
                                                                                if (tree.getSelection()[0].getParentItem() != null){
663 14 kreverch
                                                                                        TreeItem topRoot = tree.getSelection()[0];
664 14 kreverch
                                                                                        while (topRoot.getParentItem() != null){
665 14 kreverch
                                                                                                topRoot = topRoot.getParentItem();
666 14 kreverch
                                                                                        }
667 14 kreverch
                                                                                        TreeItem treeZfsListItem = tree.getSelection()[0];
668 14 kreverch
                                                                                        tree.select(treeZfsListItem);
669 14 kreverch
                                                                                        zfs.getZserver().zProperties.get("serverIP").setValue(topRoot.getText());
670 14 kreverch
                                                                                        zfs.zfsGetAllVolume(tree.getSelection()[0].getData().toString());
671 14 kreverch
                                                                                }
672 14 kreverch
                                                                        }
673 14 kreverch
                                                                        createTabItemVolConfig();
674 14 kreverch
                                                                        refreshConfigVolume();
675 14 kreverch
                                                                        compositeConfig.layout();
676 14 kreverch
                                                                        createTabItemIscsi();
677 14 kreverch
                                                                        createTabItemSnapshot();
678 14 kreverch
                                                                        createTabItemReplica();
679 14 kreverch
                                                                }
680 14 kreverch
681 14 kreverch
                                                        });
682 14 kreverch
                                                }
683 14 kreverch
                                        });
684 14 kreverch
                                        thrZfsList.start();
685 14 kreverch
                                }
686 14 kreverch
                        }
687 14 kreverch
                });
688 14 kreverch
                tabFolderConfig.addListener(SWT.Selection, new Listener() {
689 14 kreverch
                        public void handleEvent(final Event event) {
690 14 kreverch
                                if (tabFolderConfig.getSelection()[0].getText().equalsIgnoreCase("Snapshots")){
691 14 kreverch
                                        //tabFolderConfig.getItems()[0].s
692 14 kreverch
                                        treeSnapshots.clearAll(true);
693 14 kreverch
                                        treeSnapshots.setItemCount(0);
694 14 kreverch
                                        List<Object> zlistSnapshots = zfs.zfsListSnapshotsByVolFS(zfs.getZvol().zProperties.get("name").getValue());
695 14 kreverch
                                        for (int i = 0; i < zlistSnapshots.size(); i++) {
696 14 kreverch
                                                TreeItem root = new TreeItem(treeSnapshots, 0);
697 14 kreverch
                                                root.setText(zlistSnapshots.get(i).toString());
698 14 kreverch
                                                root.setData(zlistSnapshots.get(i).toString());
699 14 kreverch
                                                new TreeItem(root, 0);
700 14 kreverch
                                        }
701 14 kreverch
702 14 kreverch
                                }
703 14 kreverch
                        }
704 14 kreverch
                });
705 14 kreverch
        }
706 14 kreverch
707 14 kreverch
        private void createTabItemSettings(){
708 14 kreverch
                /******************************************************************************
709 14 kreverch
                 * CREATE TAB : Settings
710 14 kreverch
                 ******************************************************************************/
711 14 kreverch
712 14 kreverch
                tbtmSettings = new TabItem(tabFolderConfig,SWT.NONE,0);
713 14 kreverch
                tbtmSettings.setText("Server Configuration");
714 14 kreverch
                Composite compositeSettings = new Composite(tabFolderConfig,SWT.NONE);
715 14 kreverch
                tbtmSettings.setControl(compositeSettings);
716 14 kreverch
                GridLayout gridLayout = new GridLayout();
717 14 kreverch
                compositeSettings.setLayout(gridLayout);
718 14 kreverch
719 14 kreverch
        }
720 14 kreverch
721 14 kreverch
        private void createTabItemZpoolConfig(){
722 14 kreverch
                /******************************************************************************
723 14 kreverch
                 * CREATE TAB : SZFS Pool Configuration
724 14 kreverch
                 ******************************************************************************/
725 14 kreverch
726 14 kreverch
                tbtmZpoolConfig = new TabItem(tabFolderConfig,SWT.NONE,0);
727 14 kreverch
                tbtmZpoolConfig.setText("Pool Configuration");
728 14 kreverch
                compositeZpoolConfig = new Composite(tabFolderConfig,SWT.NONE);
729 14 kreverch
                tbtmZpoolConfig.setControl(compositeZpoolConfig);
730 14 kreverch
                GridLayout gridLayout = new GridLayout();
731 14 kreverch
                gridLayout.numColumns=2;
732 14 kreverch
                compositeZpoolConfig.setLayout(gridLayout);
733 14 kreverch
                compositeZpoolConfig.setBackground(tabFolderBackgroundColor);
734 14 kreverch
735 14 kreverch
                Group groupZpoolConfig = new Group(compositeZpoolConfig,SWT.NONE);
736 14 kreverch
                groupZpoolConfig.setBackground(groupBackgroundColor);
737 14 kreverch
                groupZpoolConfig.setLayout(new GridLayout());
738 14 kreverch
                //GridData gridDataZpoolConfig=new GridData(GridData.FILL_HORIZONTAL);
739 14 kreverch
                GridData gridDataZpoolConfig=new GridData(SWT.FILL, SWT.FILL, true, true);
740 14 kreverch
                //gridDataZpoolConfig.heightHint=550;
741 14 kreverch
                //gridDataZpoolConfig.minimumHeight=550;
742 14 kreverch
                gridDataZpoolConfig.horizontalSpan=2;
743 14 kreverch
                groupZpoolConfig.setLayoutData(gridDataZpoolConfig);
744 14 kreverch
745 14 kreverch
                ScrolledComposite scrolledZpoolConfig=new ScrolledComposite(groupZpoolConfig,SWT.V_SCROLL);
746 14 kreverch
                scrolledZpoolConfig.setLayoutData(new GridData(GridData.FILL_BOTH));
747 14 kreverch
                Composite compositeWidget=new Composite(scrolledZpoolConfig,SWT.NONE);
748 14 kreverch
                compositeWidget.setBackground(compositeBackgroundColor);
749 14 kreverch
                GridLayout gridLayoutWidget = new GridLayout();
750 14 kreverch
                gridLayoutWidget.numColumns =2;
751 14 kreverch
                compositeWidget.setLayout(gridLayoutWidget);
752 14 kreverch
753 14 kreverch
                GridData gridDataTitle = new GridData(GridData.FILL, GridData.CENTER, true, false);
754 14 kreverch
                gridDataTitle.horizontalSpan = 2;
755 14 kreverch
                Label lblTitleInfoZpool = new Label(compositeWidget, SWT.CENTER|SWT.BORDER);
756 14 kreverch
                lblTitleInfoZpool.setLayoutData(gridDataTitle);
757 14 kreverch
                lblTitleInfoZpool.setFont(fontTitle);
758 14 kreverch
                lblTitleInfoZpool.setBackground(labelTitleBackgroundColor);
759 14 kreverch
                lblTitleInfoZpool.setText("ZFS Pool Informations");
760 14 kreverch
761 14 kreverch
762 14 kreverch
                String[] keysProp = (String[]) zfs.getZpool().zProperties.keySet().toArray(new String[0]);
763 14 kreverch
                Arrays.sort(keysProp);
764 14 kreverch
                labelsFieldPool.clear();
765 14 kreverch
                textsFieldPool.clear();
766 14 kreverch
                combosFieldPool.clear();
767 14 kreverch
768 14 kreverch
                for (int i = 0; i < keysProp.length; i++) {
769 14 kreverch
                        keyProp = keysProp[i];
770 14 kreverch
                        Label lbl = new Label(compositeWidget, SWT.NONE);
771 14 kreverch
                        lbl.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
772 14 kreverch
                        lbl.setText(zfs.getZpool().zProperties.get(keyProp).getLabelProperty());
773 14 kreverch
                        lbl.setFont(fontWidget);
774 14 kreverch
                        lbl.setBackground(labelFieldBackgroundColor);
775 14 kreverch
                        if ( "noupdateable".equalsIgnoreCase(zfs.getZpool().zProperties.get(keyProp).getType())) {
776 14 kreverch
                                labelsFieldPool.add(new Label(compositeWidget, SWT.NONE));
777 14 kreverch
                                labelsFieldPool.get(labelsFieldPool.size()-1).setBackground(labelFieldBackgroundColor);
778 14 kreverch
                                labelsFieldPool.get(labelsFieldPool.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
779 14 kreverch
                                labelsFieldPool.get(labelsFieldPool.size()-1).setData(zfs.getZpool().zProperties.get(keyProp).getNameProperty());
780 14 kreverch
                        }else{
781 14 kreverch
                                if ( "freeentry".equalsIgnoreCase(zfs.getZpool().zProperties.get(keyProp).getType())){
782 14 kreverch
                                        textsFieldPool.add(new Text(compositeWidget, SWT.WRAP|SWT.BORDER));
783 14 kreverch
                                        textsFieldPool.get(textsFieldPool.size()-1).setBackground(textFieldBackgroundColor);
784 14 kreverch
                                        textsFieldPool.get(textsFieldPool.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
785 14 kreverch
                                        textsFieldPool.get(textsFieldPool.size()-1).setData(zfs.getZpool().zProperties.get(keyProp).getNameProperty());
786 14 kreverch
787 14 kreverch
                                }else{
788 14 kreverch
789 14 kreverch
                                        if ( "nofreeentry".equalsIgnoreCase(zfs.getZpool().zProperties.get(keyProp).getType())){
790 14 kreverch
                                                combosFieldPool.add(new Combo(compositeWidget, SWT.NONE));
791 14 kreverch
                                                combosFieldPool.get(combosFieldPool.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
792 14 kreverch
                                                combosFieldPool.get(combosFieldPool.size()-1).setData(zfs.getZpool().zProperties.get(keyProp).getNameProperty());
793 14 kreverch
                                                String[] keysPermitValue = (String[])zfs.getZpool().zProperties.get(keyProp).getPermitValue().keySet().toArray(new String[0]);
794 14 kreverch
795 14 kreverch
                                                for (int cpt=0;cpt <zfs.getZpool().zProperties.get(keyProp).getPermitValue().size();cpt++){
796 14 kreverch
                                                        String keyPermitValue = keysPermitValue[cpt];
797 14 kreverch
                                                        combosFieldPool.get(combosFieldPool.size()-1).add(zfs.getZpool().zProperties.get(keyProp).getPermitValue().get(keyPermitValue).toString());
798 14 kreverch
                                                }
799 14 kreverch
                                        }
800 14 kreverch
                                }
801 14 kreverch
802 14 kreverch
                        }
803 14 kreverch
                }
804 14 kreverch
805 14 kreverch
806 14 kreverch
                scrolledZpoolConfig.setContent(compositeWidget);
807 14 kreverch
                scrolledZpoolConfig.setExpandVertical(true);
808 14 kreverch
                scrolledZpoolConfig.setExpandHorizontal(true);
809 14 kreverch
                scrolledZpoolConfig.setMinSize(compositeWidget.computeSize(SWT.DEFAULT,SWT.DEFAULT));
810 14 kreverch
811 14 kreverch
812 14 kreverch
        }
813 14 kreverch
814 14 kreverch
        private void createTabItemDisks(){
815 14 kreverch
                /******************************************************************************
816 14 kreverch
                 * CREATE TAB : DISKS ZFS
817 14 kreverch
                 ******************************************************************************/
818 14 kreverch
819 14 kreverch
                tbtmDisks = new TabItem(tabFolderConfig,SWT.NONE,2);
820 14 kreverch
                tbtmDisks.setText("Raid and Disks Configuration");
821 14 kreverch
                compositeDisks = new Composite(tabFolderConfig,SWT.NONE);
822 14 kreverch
                tbtmDisks.setControl(compositeDisks);
823 14 kreverch
                GridLayout gridLayout = new GridLayout();
824 14 kreverch
                gridLayout.numColumns=6;
825 14 kreverch
                compositeDisks.setLayout(gridLayout);
826 14 kreverch
                compositeDisks.setBackground(tabFolderBackgroundColor);
827 14 kreverch
828 14 kreverch
829 14 kreverch
830 14 kreverch
831 14 kreverch
832 14 kreverch
833 14 kreverch
        }
834 14 kreverch
835 14 kreverch
836 14 kreverch
837 14 kreverch
        private void createTabItemVolConfig(){
838 14 kreverch
                /******************************************************************************
839 14 kreverch
                 * CREATE TAB : Config
840 14 kreverch
                 ******************************************************************************/
841 14 kreverch
842 14 kreverch
843 14 kreverch
                tbtmConfig = new TabItem(tabFolderConfig,SWT.NONE,0);
844 14 kreverch
                tbtmConfig.setText("Configuration");
845 14 kreverch
                compositeConfig = new Composite(tabFolderConfig, SWT.NONE);
846 14 kreverch
                //compositeConfig.set
847 14 kreverch
                GridData parentData = new GridData(SWT.FILL, SWT.FILL, true, true);
848 14 kreverch
                compositeConfig.setLayoutData(parentData);
849 14 kreverch
                tbtmConfig.setControl(compositeConfig);
850 14 kreverch
                GridLayout gridLayout = new GridLayout();
851 14 kreverch
                gridLayout.numColumns=2;
852 14 kreverch
                compositeConfig.setLayout(gridLayout);
853 14 kreverch
                compositeConfig.setBackground(tabFolderBackgroundColor);
854 14 kreverch
                Group groupInfoVolFS=new Group(compositeConfig,SWT.NONE);
855 14 kreverch
                groupInfoVolFS.setBackground(groupBackgroundColor);
856 14 kreverch
                groupInfoVolFS.setLayout(new GridLayout());
857 14 kreverch
                GridData gridData=new GridData(GridData.FILL_HORIZONTAL);
858 14 kreverch
                gridData.heightHint=400;
859 14 kreverch
                gridData.horizontalSpan=2;
860 14 kreverch
                groupInfoVolFS.setLayoutData(gridData);
861 14 kreverch
862 14 kreverch
                ScrolledComposite scrolledCreateVol=new ScrolledComposite(groupInfoVolFS,SWT.V_SCROLL);
863 14 kreverch
                scrolledCreateVol.setLayoutData(new GridData(GridData.FILL_BOTH));
864 14 kreverch
                Composite compositeWidget=new Composite(scrolledCreateVol,SWT.NONE);
865 14 kreverch
                compositeWidget.setBackground(compositeBackgroundColor);
866 14 kreverch
                GridLayout gridLayoutWidget = new GridLayout();
867 14 kreverch
                gridLayoutWidget.numColumns =2;
868 14 kreverch
                compositeWidget.setLayout(gridLayoutWidget);
869 14 kreverch
870 14 kreverch
                GridData gridDataTitle = new GridData(GridData.FILL, GridData.CENTER, true, false);
871 14 kreverch
                gridDataTitle.horizontalSpan = 2;
872 14 kreverch
                Label lblTitleVolConfig = new Label(compositeWidget, SWT.CENTER|SWT.BORDER);
873 14 kreverch
                lblTitleVolConfig.setLayoutData(gridDataTitle);
874 14 kreverch
                lblTitleVolConfig.setFont(fontTitle);
875 14 kreverch
                lblTitleVolConfig.setBackground(labelTitleBackgroundColor);
876 14 kreverch
                lblTitleVolConfig.setText("Volume Parameters Information");
877 14 kreverch
878 14 kreverch
                String[] keysProp = (String[]) zfs.getZvol().zProperties.keySet().toArray(new String[0]);
879 14 kreverch
                Arrays.sort(keysProp);
880 14 kreverch
                labelsField.clear();
881 14 kreverch
                textsField.clear();
882 14 kreverch
                combosField.clear();
883 14 kreverch
                for (int i = 0; i < keysProp.length; i++) {
884 14 kreverch
                        keyProp = keysProp[i];
885 14 kreverch
                        if ( ("volume".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue()) &&
886 14 kreverch
                                        ("volume".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getPropertyOf()) ||
887 14 kreverch
                                                        "volandfs".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getPropertyOf())) ) ||
888 14 kreverch
                                                        ("filesystem".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue()) &&
889 14 kreverch
                                                                        ("fs".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getPropertyOf()) ||
890 14 kreverch
                                                                                        "volandfs".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getPropertyOf()) ) )
891 14 kreverch
                                                                                        || ("snapshot".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue()) && "volandfs".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getPropertyOf()))
892 14 kreverch
893 14 kreverch
                                        ){
894 14 kreverch
895 14 kreverch
                                Label lbl = new Label(compositeWidget, SWT.NONE);
896 14 kreverch
                                lbl.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
897 14 kreverch
                                lbl.setText(zfs.getZvol().zProperties.get(keyProp).getLabelProperty());
898 14 kreverch
                                lbl.setFont(fontWidget);
899 14 kreverch
                                lbl.setBackground(labelFieldBackgroundColor);
900 14 kreverch
                                if ( "noupdateable".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getType())) {
901 14 kreverch
                                        labelsField.add(new Label(compositeWidget, SWT.NONE));
902 14 kreverch
                                        labelsField.get(labelsField.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
903 14 kreverch
                                        //labelsField.get(labelsField.size()-1).setText(zfs.getZvol().zProperties.get(keyProp).getNameProperty());
904 14 kreverch
                                        labelsField.get(labelsField.size()-1).setData(zfs.getZvol().zProperties.get(keyProp).getNameProperty());
905 14 kreverch
                                        labelsField.get(labelsField.size()-1).setBackground(labelFieldBackgroundColor);
906 14 kreverch
                                }else{
907 14 kreverch
                                        if ( "freeentry".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getType())){
908 14 kreverch
                                                textsField.add(new Text(compositeWidget, SWT.WRAP|SWT.BORDER));
909 14 kreverch
                                                textsField.get(textsField.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
910 14 kreverch
                                                //textsField.get(textsField.size()-1).setText(zfs.getZvol().zProperties.get(keyProp).getNameProperty());
911 14 kreverch
                                                textsField.get(textsField.size()-1).setData(zfs.getZvol().zProperties.get(keyProp).getNameProperty());
912 14 kreverch
                                                textsField.get(textsField.size()-1).setBackground(textFieldBackgroundColor);
913 14 kreverch
                                        }else{
914 14 kreverch
915 14 kreverch
                                                if ( "nofreeentry".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getType())){
916 14 kreverch
                                                        combosField.add(new Combo(compositeWidget, SWT.NONE));
917 14 kreverch
                                                        combosField.get(combosField.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
918 14 kreverch
                                                        combosField.get(combosField.size()-1).setData(zfs.getZvol().zProperties.get(keyProp).getNameProperty());
919 14 kreverch
                                                        //combosField.get(combosField.size()-1).setText(zfs.getZvol().zProperties.get(keyProp).getValue());
920 14 kreverch
                                                        String[] keysPermitValue = (String[])zfs.getZvol().zProperties.get(keyProp).getPermitValue().keySet().toArray(new String[0]);
921 14 kreverch
                                                        for (int cpt=0;cpt <zfs.getZvol().zProperties.get(keyProp).getPermitValue().size();cpt++){
922 14 kreverch
                                                                String keyPermitValue = keysPermitValue[cpt];
923 14 kreverch
                                                                combosField.get(combosField.size()-1).add(zfs.getZvol().zProperties.get(keyProp).getPermitValue().get(keyPermitValue).toString());
924 14 kreverch
                                                        }
925 14 kreverch
                                                }
926 14 kreverch
                                        }
927 14 kreverch
                                }
928 14 kreverch
                        }
929 14 kreverch
                }
930 14 kreverch
                scrolledCreateVol.setContent(compositeWidget);
931 14 kreverch
                scrolledCreateVol.setExpandVertical(true);
932 14 kreverch
                scrolledCreateVol.setExpandHorizontal(true);
933 14 kreverch
                scrolledCreateVol.setMinSize(compositeWidget.computeSize(SWT.DEFAULT,SWT.DEFAULT));
934 14 kreverch
935 14 kreverch
        }
936 14 kreverch
937 14 kreverch
        private void createTabItemCreateVol(){
938 14 kreverch
                /******************************************************************************
939 14 kreverch
                 * CREATE TAB : Create Volume
940 14 kreverch
                 ******************************************************************************/
941 14 kreverch
                tbtmCreateVolFS = new TabItem(tabFolderConfig, SWT.NONE);
942 14 kreverch
                tbtmCreateVolFS.setText("Create Volume/FileSystem");
943 14 kreverch
                compositeCreateVolFS = new Composite(tabFolderConfig, SWT.NONE);
944 14 kreverch
                tbtmCreateVolFS.setControl(compositeCreateVolFS);
945 14 kreverch
                GridLayout gridLayoutCreateVolFS = new GridLayout();
946 14 kreverch
                gridLayoutCreateVolFS.numColumns =1;
947 14 kreverch
                compositeCreateVolFS.setLayout(gridLayoutCreateVolFS);
948 14 kreverch
                compositeCreateVolFS.setBackground(tabFolderBackgroundColor);
949 14 kreverch
950 14 kreverch
951 14 kreverch
952 14 kreverch
                refreshCreateZfsVolFS();
953 14 kreverch
954 14 kreverch
955 14 kreverch
956 14 kreverch
957 14 kreverch
        }
958 14 kreverch
959 14 kreverch
        private void createTabItemIscsi(){
960 14 kreverch
                /******************************************************************************
961 14 kreverch
                 * CREATE TAB : Add ISCSI Config
962 14 kreverch
                 ******************************************************************************/
963 14 kreverch
                tbtmIscsi = new TabItem(tabFolderConfig, SWT.NONE);
964 14 kreverch
                tbtmIscsi.setText("ISCSI Configuration");
965 14 kreverch
                compositeIscsi = new Composite(tabFolderConfig, SWT.NONE);
966 14 kreverch
                tbtmIscsi.setControl(compositeIscsi);
967 14 kreverch
                GridLayout gridLayoutCreateIscsi = new GridLayout();
968 14 kreverch
                //gridLayoutCreateIscsi.numColumns =2;
969 14 kreverch
                compositeIscsi.setLayout(gridLayoutCreateIscsi);
970 14 kreverch
                compositeIscsi.setBackground(tabFolderBackgroundColor);
971 14 kreverch
972 14 kreverch
                Group groupListSession= new Group(compositeIscsi,SWT.NONE);
973 14 kreverch
                groupListSession.setBackground(groupBackgroundColor);
974 14 kreverch
                groupListSession.setLayout(new GridLayout());
975 14 kreverch
                GridData gridDataListSession=new GridData(GridData.FILL_HORIZONTAL);
976 14 kreverch
                //gridDataServerConfig.heightHint=500;
977 14 kreverch
                //gridDataServerConfig.minimumHeight=500;
978 14 kreverch
                gridDataListSession.heightHint=120;
979 14 kreverch
                groupListSession.setLayoutData(gridDataListSession);
980 14 kreverch
981 14 kreverch
                GridData gridDataTitle = new GridData(GridData.FILL, GridData.CENTER, true, false);
982 14 kreverch
                gridDataTitle.horizontalSpan = 2;
983 14 kreverch
                Label lblTitleListSession = new Label(groupListSession, SWT.CENTER|SWT.BORDER);
984 14 kreverch
                lblTitleListSession.setLayoutData(gridDataTitle);
985 14 kreverch
                lblTitleListSession.setFont(fontTitle);
986 14 kreverch
                lblTitleListSession.setBackground(labelTitleBackgroundColor);
987 14 kreverch
                lblTitleListSession.setText("ISCSI Session List");
988 14 kreverch
989 14 kreverch
                GridData gd_tableIscsiSession = new GridData(GridData.FILL,GridData.FILL, true, true);
990 14 kreverch
                gd_tableIscsiSession.heightHint = 100;
991 14 kreverch
                gd_tableIscsiSession.horizontalSpan = 2;
992 14 kreverch
                tableIscsiSession = new Table(groupListSession, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI);
993 14 kreverch
                tableIscsiSession.setHeaderVisible(true);
994 14 kreverch
                tableIscsiSession.setLinesVisible(true);
995 14 kreverch
                tableIscsiSession.setLayoutData(gd_tableIscsiSession);
996 14 kreverch
                String[] keysProp = (String[]) zfs.getZiscsi().zProperties.keySet().toArray(new String[0]);
997 14 kreverch
                for (int i = 0; i < keysProp.length; i++) {
998 14 kreverch
                        keyProp = keysProp[i];
999 14 kreverch
                        if ( "multinoupdateable".equalsIgnoreCase(zfs.getZiscsi().zProperties.get(keyProp).getType())){
1000 14 kreverch
                                log.info("create tab iscsi");
1001 14 kreverch
                                tablecolumnsFieldAddIscsi.add(new TableColumn(tableIscsiSession, SWT.NONE));
1002 14 kreverch
                                tablecolumnsFieldAddIscsi.get(tablecolumnsFieldAddIscsi.size()-1).setWidth(150);
1003 14 kreverch
                                tablecolumnsFieldAddIscsi.get(tablecolumnsFieldAddIscsi.size()-1).setText(zfs.getZiscsi().zProperties.get(keyProp).getNameProperty());
1004 14 kreverch
                        }
1005 14 kreverch
                }
1006 14 kreverch
1007 14 kreverch
                Group groupSessionParameters= new Group(compositeIscsi,SWT.NONE);
1008 14 kreverch
                groupSessionParameters.setBackground(groupBackgroundColor);
1009 14 kreverch
                GridLayout gridLayoutSessionParemeters = new GridLayout();
1010 14 kreverch
                gridLayoutSessionParemeters.numColumns =2;
1011 14 kreverch
                groupSessionParameters.setLayout(gridLayoutSessionParemeters);
1012 14 kreverch
1013 14 kreverch
                GridData gridDataSessionParameters=new GridData(GridData.FILL_HORIZONTAL);
1014 14 kreverch
                //gridDataSessionParameters.heightHint=250;
1015 14 kreverch
                groupSessionParameters.setLayoutData(gridDataSessionParameters);
1016 14 kreverch
1017 14 kreverch
                GridData gridDataTitleSessionParameters = new GridData(GridData.FILL, GridData.CENTER, true, false);
1018 14 kreverch
                gridDataTitleSessionParameters.horizontalSpan = 2;
1019 14 kreverch
                Label lblTitreSessionParameters = new Label(groupSessionParameters, SWT.CENTER|SWT.BORDER);
1020 14 kreverch
                lblTitreSessionParameters.setLayoutData(gridDataTitleSessionParameters);
1021 14 kreverch
                lblTitreSessionParameters.setFont(fontTitle);
1022 14 kreverch
                lblTitreSessionParameters.setBackground(labelTitleBackgroundColor);
1023 14 kreverch
                lblTitreSessionParameters.setText("ISCSI Session Parameters");
1024 14 kreverch
                keysProp = (String[]) zfs.getZiscsi().zProperties.keySet().toArray(new String[0]);
1025 14 kreverch
                Arrays.sort(keysProp);
1026 14 kreverch
                labelsFieldAddIscsi.clear();
1027 14 kreverch
                textsFieldAddIscsi.clear();
1028 14 kreverch
                combosFieldAddIscsi.clear();
1029 14 kreverch
1030 14 kreverch
                for (int i = 0; i < keysProp.length; i++) {
1031 14 kreverch
                        keyProp = keysProp[i];
1032 14 kreverch
                        if ( "noupdateable".equalsIgnoreCase(zfs.getZiscsi().zProperties.get(keyProp).getType())) {
1033 14 kreverch
                                Label lbl = new Label(groupSessionParameters, SWT.NONE);
1034 14 kreverch
                                lbl.setFont(fontWidget);
1035 14 kreverch
                                lbl.setBackground(labelFieldBackgroundColor);
1036 14 kreverch
                                lbl.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
1037 14 kreverch
                                lbl.setText(zfs.getZiscsi().zProperties.get(keyProp).getLabelProperty());
1038 14 kreverch
1039 14 kreverch
                                labelsFieldAddIscsi.add(new Label(groupSessionParameters, SWT.NONE));
1040 14 kreverch
                                labelsFieldAddIscsi.get(labelsFieldAddIscsi.size()-1).setBackground(labelFieldBackgroundColor);
1041 14 kreverch
                                labelsFieldAddIscsi.get(labelsFieldAddIscsi.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
1042 14 kreverch
                                labelsFieldAddIscsi.get(labelsFieldAddIscsi.size()-1).setData(zfs.getZiscsi().zProperties.get(keyProp).getNameProperty());
1043 14 kreverch
                        }else{
1044 14 kreverch
                                if ( "freeentry".equalsIgnoreCase(zfs.getZiscsi().zProperties.get(keyProp).getType())){
1045 14 kreverch
                                        Label lbl = new Label(groupSessionParameters, SWT.NONE);
1046 14 kreverch
                                        lbl.setFont(fontWidget);
1047 14 kreverch
                                        lbl.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));
1048 14 kreverch
                                        lbl.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
1049 14 kreverch
                                        lbl.setText(zfs.getZiscsi().zProperties.get(keyProp).getLabelProperty());
1050 14 kreverch
1051 14 kreverch
                                        textsFieldAddIscsi.add(new Text(groupSessionParameters, SWT.WRAP|SWT.BORDER));
1052 14 kreverch
                                        textsFieldAddIscsi.get(textsFieldAddIscsi.size()-1).setBackground(textFieldBackgroundColor);
1053 14 kreverch
                                        textsFieldAddIscsi.get(textsFieldAddIscsi.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
1054 14 kreverch
                                        //textsField.get(textsField.size()-1).setText(zfs.getZiscsi().zProperties.get(keyProp).getNameProperty());
1055 14 kreverch
                                        textsFieldAddIscsi.get(textsFieldAddIscsi.size()-1).setData(zfs.getZiscsi().zProperties.get(keyProp).getNameProperty());
1056 14 kreverch
1057 14 kreverch
                                }else{
1058 14 kreverch
1059 14 kreverch
                                        if ( "nofreeentry".equalsIgnoreCase(zfs.getZiscsi().zProperties.get(keyProp).getType())){
1060 14 kreverch
                                                Label lbl = new Label(groupSessionParameters, SWT.NONE);
1061 14 kreverch
                                                lbl.setFont(fontWidget);
1062 14 kreverch
                                                lbl.setBackground(labelFieldBackgroundColor);
1063 14 kreverch
                                                lbl.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
1064 14 kreverch
                                                lbl.setText(zfs.getZiscsi().zProperties.get(keyProp).getLabelProperty());
1065 14 kreverch
1066 14 kreverch
                                                combosFieldAddIscsi.add(new Combo(groupSessionParameters, SWT.NONE));
1067 14 kreverch
                                                combosFieldAddIscsi.get(combosFieldAddIscsi.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
1068 14 kreverch
                                                combosFieldAddIscsi.get(combosFieldAddIscsi.size()-1).setData(zfs.getZiscsi().zProperties.get(keyProp).getNameProperty());
1069 14 kreverch
                                                //combosField.get(combosField.size()-1).setText(zfs.getZiscsi().zProperties.get(keyProp).getValue());
1070 14 kreverch
                                                String[] keysPermitValue = (String[]) zfs.getZiscsi().zProperties.get(keyProp).getPermitValue().keySet().toArray(new String[0]);
1071 14 kreverch
                                                for (int cpt=0;cpt <zfs.getZiscsi().zProperties.get(keyProp).getPermitValue().size();cpt++){
1072 14 kreverch
                                                        String keyPermitValue = keysPermitValue[cpt];
1073 14 kreverch
                                                        combosFieldAddIscsi.get(combosFieldAddIscsi.size()-1).add(zfs.getZiscsi().zProperties.get(keyProp).getPermitValue().get(keyPermitValue).toString());
1074 14 kreverch
                                                }
1075 14 kreverch
                                        }
1076 14 kreverch
                                }
1077 14 kreverch
1078 14 kreverch
                        }
1079 14 kreverch
                }
1080 14 kreverch
                Button btnCreateIscsi = new Button(groupSessionParameters, SWT.None);
1081 14 kreverch
                btnCreateIscsi.setText("Enable Iscsi");
1082 14 kreverch
                btnCreateIscsi.addListener(SWT.Selection, new Listener() {
1083 14 kreverch
1084 14 kreverch
                        public void handleEvent(final Event event) {
1085 14 kreverch
                                if (! zfs.getZvol().zProperties.get("name").getValue().equalsIgnoreCase("")){
1086 14 kreverch
1087 14 kreverch
                                        String[] keysProp = (String[]) zfs.getZiscsi().zProperties.keySet().toArray(new String[0]);
1088 14 kreverch
                                        Arrays.sort(keysProp);
1089 14 kreverch
1090 14 kreverch
                                        for (int i = 0; i < keysProp.length; i++) {
1091 14 kreverch
                                                keyProp = keysProp[i];
1092 14 kreverch
                                                log.debug("btnCreateIscsi :"+keyProp);
1093 14 kreverch
                                                if ( "noupdateable".equalsIgnoreCase(zfs.getZiscsi().zProperties.get(keyProp).getType())) {
1094 14 kreverch
                                                        for (int indLabel=0;indLabel<labelsFieldAddIscsi.size();indLabel++){
1095 14 kreverch
                                                                if ( labelsFieldAddIscsi.get(indLabel).getData().equals(zfs.getZiscsi().zProperties.get(keyProp).getNameProperty()) ){
1096 14 kreverch
                                                                        zfs.getZiscsi().zProperties.get(keyProp).setValue(labelsFieldAddIscsi.get(indLabel).getText());
1097 14 kreverch
                                                                }
1098 14 kreverch
                                                        }
1099 14 kreverch
                                                }else{
1100 14 kreverch
                                                        if ( "freeentry".equalsIgnoreCase(zfs.getZiscsi().zProperties.get(keyProp).getType())) {
1101 14 kreverch
                                                                for (int indText=0;indText<textsFieldAddIscsi.size();indText++){
1102 14 kreverch
                                                                        if ( textsFieldAddIscsi.get(indText).getData().equals(zfs.getZiscsi().zProperties.get(keyProp).getNameProperty()) ){
1103 14 kreverch
                                                                                zfs.getZiscsi().zProperties.get(keyProp).setValue(textsFieldAddIscsi.get(indText).getText());
1104 14 kreverch
                                                                        }
1105 14 kreverch
                                                                }
1106 14 kreverch
1107 14 kreverch
                                                        }else{
1108 14 kreverch
1109 14 kreverch
                                                                if ( "nofreeentry".equalsIgnoreCase(zfs.getZiscsi().zProperties.get(keyProp).getType())) {
1110 14 kreverch
                                                                        for (int indList=0;indList<combosFieldAddIscsi.size();indList++){
1111 14 kreverch
                                                                                log.debug("first loop"+combosFieldAddIscsi.get(indList).getData()+" "+zfs.getZiscsi().zProperties.get(keyProp).getNameProperty());
1112 14 kreverch
1113 14 kreverch
                                                                                if ( combosFieldAddIscsi.get(indList).getData().equals(zfs.getZiscsi().zProperties.get(keyProp).getNameProperty()) ){
1114 14 kreverch
                                                                                        zfs.getZiscsi().zProperties.get(keyProp).setValue(combosFieldAddIscsi.get(indList).getText());
1115 14 kreverch
                                                                                        log.debug(zfs.getZiscsi().zProperties.get(keyProp).getMultivalues());
1116 14 kreverch
                                                                                }
1117 14 kreverch
                                                                        }
1118 14 kreverch
                                                                }
1119 14 kreverch
                                                        }
1120 14 kreverch
                                                }
1121 14 kreverch
                                        }
1122 14 kreverch
                                        if ("snapshot".equals(zfs.getZvol().zProperties.get("type").getValue())){
1123 14 kreverch
                                                zfs.getZiscsi().zProperties.get("iomode").setValue("ro");
1124 14 kreverch
                                        }
1125 14 kreverch
                                        zfs.zfsCreateIscsi();
1126 14 kreverch
1127 14 kreverch
                                        String[] keysPropError = zfs.getError().keySet().toArray(new String[0]);
1128 14 kreverch
                                        //String[] keysProp = (String[]) zfs.getZserver().zProperties.keySet().toArray(new String[0]);
1129 14 kreverch
                                        Arrays.sort(keysPropError);
1130 14 kreverch
                                        String textBox = "";
1131 14 kreverch
                                        for (int i = 0; i < keysPropError.length; i++) {
1132 14 kreverch
                                                String keyPropError = keysPropError[i];
1133 14 kreverch
                                                textBox = textBox +zfs.getError().get(keyPropError)+".\n";
1134 14 kreverch
                                        }
1135 14 kreverch
                                        if (keysPropError.length>0){
1136 14 kreverch
                                                MessageBox messageBoxInfo = new MessageBox(shell, SWT.DIALOG_TRIM);
1137 14 kreverch
                                                messageBoxInfo.setText("Warning");
1138 14 kreverch
                                                messageBoxInfo.setMessage(textBox);
1139 14 kreverch
                                                messageBoxInfo.open();
1140 14 kreverch
                                        }else{
1141 14 kreverch
                                                refreshIscsiSession();
1142 14 kreverch
                                                if ("volume".equals(zfs.getZvol().zProperties.get("type").getValue())){
1143 14 kreverch
                                                        tree.getSelection()[0].setImage(imageStorageOnline);
1144 14 kreverch
                                                }else{
1145 14 kreverch
                                                        if ("snapshot".equals(zfs.getZvol().zProperties.get("type").getValue())){
1146 14 kreverch
                                                                tree.getSelection()[0].setImage(imageSnapshotOnline);
1147 14 kreverch
                                                        }
1148 14 kreverch
                                                }
1149 14 kreverch
1150 14 kreverch
                                        }
1151 14 kreverch
1152 14 kreverch
                                }
1153 14 kreverch
                        }
1154 14 kreverch
                });
1155 14 kreverch
1156 14 kreverch
                Button btnDelIscsi = new Button(groupSessionParameters, SWT.None);
1157 14 kreverch
                btnDelIscsi.setText("Disable Iscsi");
1158 14 kreverch
                btnDelIscsi.addListener(SWT.Selection, new Listener() {
1159 14 kreverch
1160 14 kreverch
1161 14 kreverch
1162 14 kreverch
                        public void handleEvent(final Event event) {
1163 14 kreverch
1164 14 kreverch
                                if (! zfs.getZvol().zProperties.get("name").getValue().equalsIgnoreCase("")&& !"filesystem".equals(zfs.getZvol().zProperties.get("type").getValue())){
1165 14 kreverch
                                        zfs.zfsDelIscsi();
1166 14 kreverch
                                        String[] keysPropError = zfs.getError().keySet().toArray(new String[0]);
1167 14 kreverch
                                        //String[] keysProp = (String[]) zfs.getZserver().zProperties.keySet().toArray(new String[0]);
1168 14 kreverch
                                        Arrays.sort(keysPropError);
1169 14 kreverch
                                        String textBox = "";
1170 14 kreverch
                                        for (int i = 0; i < keysPropError.length; i++) {
1171 14 kreverch
                                                String keyPropError = keysPropError[i];
1172 14 kreverch
                                                textBox = textBox +zfs.getError().get(keyPropError)+".\n";
1173 14 kreverch
                                        }
1174 14 kreverch
                                        if (keysPropError.length>0){
1175 14 kreverch
                                                MessageBox messageBoxInfo = new MessageBox(shell, SWT.DIALOG_TRIM);
1176 14 kreverch
                                                messageBoxInfo.setText("Warning");
1177 14 kreverch
                                                messageBoxInfo.setMessage(textBox);
1178 14 kreverch
                                                messageBoxInfo.open();
1179 14 kreverch
                                        }else{
1180 14 kreverch
                                                refreshIscsiSession();
1181 14 kreverch
                                                if ("volume".equals(zfs.getZvol().zProperties.get("type").getValue())){
1182 14 kreverch
                                                        tree.getSelection()[0].setImage(imageStorageOffline);
1183 14 kreverch
                                                }else{
1184 14 kreverch
                                                        if ("snapshot".equals(zfs.getZvol().zProperties.get("type").getValue())){
1185 14 kreverch
                                                                tree.getSelection()[0].setImage(imageSnapshotOffline);
1186 14 kreverch
                                                        }
1187 14 kreverch
                                                }
1188 14 kreverch
1189 14 kreverch
                                        }
1190 14 kreverch
1191 14 kreverch
                                }
1192 14 kreverch
                        }
1193 14 kreverch
                });
1194 14 kreverch
        }
1195 14 kreverch
1196 14 kreverch
        /************************************************************************************************************************************
1197 14 kreverch
         *
1198 14 kreverch
         * Create tabItem Snapshot Config
1199 14 kreverch
         *
1200 14 kreverch
         ************************************************************************************************************************************/
1201 14 kreverch
1202 14 kreverch
        private void createTabItemSnapshot(){
1203 14 kreverch
                tbtmSnapshot = new TabItem(tabFolderConfig, SWT.NONE);
1204 14 kreverch
                tbtmSnapshot.setText("Snapshot Configuration");
1205 14 kreverch
                compositeSnapshot = new Composite(tabFolderConfig, SWT.NONE);
1206 14 kreverch
                tbtmSnapshot.setControl(compositeSnapshot);
1207 14 kreverch
                GridLayout gridLayoutActiveSnapshot = new GridLayout();
1208 14 kreverch
                //gridLayoutCreateIscsi.numColumns =2;
1209 14 kreverch
                compositeSnapshot.setLayout(gridLayoutActiveSnapshot);
1210 14 kreverch
                compositeSnapshot.setBackground(tabFolderBackgroundColor);
1211 14 kreverch
1212 14 kreverch
1213 14 kreverch
1214 14 kreverch
                Group groupActiveSnapshot=new Group(compositeSnapshot,SWT.NONE);
1215 14 kreverch
                groupActiveSnapshot.setBackground(groupBackgroundColor);
1216 14 kreverch
                GridLayout gridLayoutWidgetSnapshot = new GridLayout();
1217 14 kreverch
                gridLayoutWidgetSnapshot.numColumns =2;
1218 14 kreverch
                groupActiveSnapshot.setLayout(gridLayoutWidgetSnapshot);
1219 14 kreverch
                GridData gridDataActiveSnapshot=new GridData(GridData.FILL_HORIZONTAL);
1220 14 kreverch
                //gridDataActiveSnapshot.heightHint=500;
1221 14 kreverch
1222 14 kreverch
                groupActiveSnapshot.setLayoutData(gridDataActiveSnapshot);
1223 14 kreverch
1224 14 kreverch
                GridData gridDataTitleSnapshots = new GridData(GridData.FILL, GridData.CENTER, true, false);
1225 14 kreverch
                gridDataTitleSnapshots.horizontalSpan = 2;
1226 14 kreverch
                Label lblTitreConfigSnapshots = new Label(groupActiveSnapshot, SWT.CENTER|SWT.BORDER);
1227 14 kreverch
                lblTitreConfigSnapshots.setLayoutData(gridDataTitleSnapshots);
1228 14 kreverch
                lblTitreConfigSnapshots.setFont(fontTitle);
1229 14 kreverch
                lblTitreConfigSnapshots.setText("Enable/Disable Snapshot");
1230 14 kreverch
                lblTitreConfigSnapshots.setBackground(labelTitleBackgroundColor);
1231 14 kreverch
1232 14 kreverch
                String[] keysProp = (String[]) zsnap.getZsnapshots().zSchedulerProperties.keySet().toArray(new String[0]);
1233 14 kreverch
                Arrays.sort(keysProp);
1234 14 kreverch
1235 14 kreverch
                labelsFieldSnapshotsValue.clear();
1236 14 kreverch
                labelsFieldSnapshots.clear();
1237 14 kreverch
                textsFieldSnapshots.clear();
1238 14 kreverch
                listsFieldSnaphots.clear();
1239 14 kreverch
                for (int i = 0; i < keysProp.length; i++) {
1240 14 kreverch
                        keyProp = keysProp[i];
1241 14 kreverch
1242 14 kreverch
                        if ( "noupdateable".equalsIgnoreCase(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getType())) {
1243 14 kreverch
                                Label lbl = new Label(groupActiveSnapshot, SWT.NONE);
1244 14 kreverch
                                lbl.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
1245 14 kreverch
                                lbl.setText(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getLabelProperty());
1246 14 kreverch
                                lbl.setFont(fontWidget);
1247 14 kreverch
                                lbl.setBackground(labelFieldBackgroundColor);
1248 14 kreverch
                                labelsFieldSnapshots.add(new Label(groupActiveSnapshot, SWT.NONE));
1249 14 kreverch
                                labelsFieldSnapshots.get(labelsFieldSnapshots.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
1250 14 kreverch
                                //labelsField.get(labelsField.size()-1).setText(zfs.getZvol().zProperties.get(keyProp).getNameProperty());
1251 14 kreverch
                                labelsFieldSnapshots.get(labelsFieldSnapshots.size()-1).setData(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getNameProperty());
1252 14 kreverch
                                labelsFieldSnapshots.get(labelsFieldSnapshots.size()-1).setBackground(labelFieldBackgroundColor);
1253 14 kreverch
                        }else{
1254 14 kreverch
                                if ( "freeentry".equalsIgnoreCase(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getType())){
1255 14 kreverch
                                        Label lbl = new Label(groupActiveSnapshot, SWT.NONE);
1256 14 kreverch
                                        lbl.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
1257 14 kreverch
                                        lbl.setText(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getLabelProperty());
1258 14 kreverch
                                        lbl.setFont(fontWidget);
1259 14 kreverch
                                        lbl.setBackground(labelFieldBackgroundColor);
1260 14 kreverch
                                        textsFieldSnapshots.add(new Text(groupActiveSnapshot,SWT.WRAP| SWT.BORDER));
1261 14 kreverch
                                        textsFieldSnapshots.get(textsFieldSnapshots.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
1262 14 kreverch
                                        //textsField.get(textsField.size()-1).setText(zfs.getZvol().zProperties.get(keyProp).getNameProperty());
1263 14 kreverch
                                        textsFieldSnapshots.get(textsFieldSnapshots.size()-1).setData(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getNameProperty());
1264 14 kreverch
                                        textsFieldSnapshots.get(textsFieldSnapshots.size()-1).setBackground(textFieldBackgroundColor);
1265 14 kreverch
                                }else{
1266 14 kreverch
1267 14 kreverch
                                        if ( "nofreeentry".equalsIgnoreCase(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getType())){
1268 14 kreverch
                                                Label lbl = new Label(groupActiveSnapshot, SWT.NONE);
1269 14 kreverch
                                                lbl.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
1270 14 kreverch
                                                lbl.setText(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getLabelProperty());
1271 14 kreverch
                                                lbl.setFont(fontWidget);
1272 14 kreverch
                                                lbl.setBackground(labelFieldBackgroundColor);
1273 14 kreverch
                                                labelsFieldSnapshotsValue.add(new Label(groupActiveSnapshot, SWT.BORDER));
1274 14 kreverch
                                                labelsFieldSnapshotsValue.get(labelsFieldSnapshotsValue.size()-1).setData(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getNameProperty());
1275 14 kreverch
                                                labelsFieldSnapshotsValue.get(labelsFieldSnapshotsValue.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
1276 14 kreverch
                                                labelsFieldSnapshotsValue.get(labelsFieldSnapshotsValue.size()-1).setFont(fontWidget);
1277 14 kreverch
                                                labelsFieldSnapshotsValue.get(labelsFieldSnapshotsValue.size()-1).setBackground(labelFieldBackgroundColor);
1278 14 kreverch
                                                listsFieldSnaphots.add(new org.eclipse.swt.widgets.List(groupActiveSnapshot, SWT.WRAP |SWT.BORDER|SWT.V_SCROLL|SWT.MULTI));
1279 14 kreverch
                                                GridData grdData_listSnapshots = new GridData(GridData.FILL, GridData.CENTER, true, false);
1280 14 kreverch
                                                grdData_listSnapshots.heightHint=96;
1281 14 kreverch
                                                grdData_listSnapshots.horizontalSpan=2;
1282 14 kreverch
                                                listsFieldSnaphots.get(listsFieldSnaphots.size()-1).setLayoutData(grdData_listSnapshots);
1283 14 kreverch
                                                listsFieldSnaphots.get(listsFieldSnaphots.size()-1).setData(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getNameProperty());
1284 14 kreverch
1285 14 kreverch
                                                String [] valuePermiValue = zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getPermitValue().values().toArray(new String[0]);
1286 14 kreverch
                                                Arrays.sort(valuePermiValue);
1287 14 kreverch
                                                listsFieldSnaphots.get(listsFieldSnaphots.size()-1).setItems(valuePermiValue);
1288 14 kreverch
                                        }
1289 14 kreverch
                                }
1290 14 kreverch
                        }
1291 14 kreverch
                }
1292 14 kreverch
                Button btnEnableSnapshots = new Button(groupActiveSnapshot, SWT.None);
1293 14 kreverch
                btnEnableSnapshots.setText("Enable Snapshots");
1294 14 kreverch
                btnEnableSnapshots.addListener(SWT.Selection, new Listener() {
1295 14 kreverch
                        private List<Object> list4List;
1296 14 kreverch
1297 14 kreverch
                        public void handleEvent(final Event event) {
1298 14 kreverch
                                zsnap = zfs;
1299 14 kreverch
1300 14 kreverch
                                if (! zfs.getZvol().zProperties.get("name").getValue().equalsIgnoreCase("")){
1301 14 kreverch
1302 14 kreverch
                                        String[] keysProp = (String[]) zsnap.getZsnapshots().zSchedulerProperties.keySet().toArray(new String[0]);
1303 14 kreverch
                                        Arrays.sort(keysProp);
1304 14 kreverch
1305 14 kreverch
                                        for (int i = 0; i < keysProp.length; i++) {
1306 14 kreverch
                                                keyProp = keysProp[i];
1307 14 kreverch
                                                log.debug("btnEnableSnapshot :"+keyProp);
1308 14 kreverch
                                                if ( "noupdateable".equalsIgnoreCase(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getType())) {
1309 14 kreverch
                                                        for (int indLabel=0;indLabel<labelsFieldSnapshots.size();indLabel++){
1310 14 kreverch
                                                                if ( labelsFieldSnapshots.get(indLabel).getData().equals(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getNameProperty()) ){
1311 14 kreverch
                                                                        zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).setValue(labelsFieldSnapshots.get(indLabel).getText());
1312 14 kreverch
1313 14 kreverch
                                                                }
1314 14 kreverch
                                                        }
1315 14 kreverch
                                                }else{
1316 14 kreverch
                                                        if ( "freeentry".equalsIgnoreCase(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getType())) {
1317 14 kreverch
                                                                for (int indText=0;indText<textsFieldSnapshots.size();indText++){
1318 14 kreverch
                                                                        if ( textsFieldSnapshots.get(indText).getData().equals(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getNameProperty()) ){
1319 14 kreverch
                                                                                zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).setValue(textsFieldSnapshots.get(indText).getText());
1320 14 kreverch
                                                                        }
1321 14 kreverch
                                                                }
1322 14 kreverch
1323 14 kreverch
                                                        }else{
1324 14 kreverch
1325 14 kreverch
                                                                if ( "nofreeentry".equalsIgnoreCase(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getType())) {
1326 14 kreverch
                                                                        for (int indList=0;indList<listsFieldSnaphots.size();indList++){
1327 14 kreverch
                                                                                log.debug("first loop"+listsFieldSnaphots.get(indList).getData()+" "+zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getNameProperty());
1328 14 kreverch
                                                                                if ( listsFieldSnaphots.get(indList).getData().equals(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getNameProperty()) ){
1329 14 kreverch
                                                                                        list4List = new ArrayList<Object>();
1330 14 kreverch
                                                                                        log.debug("second if "+listsFieldSnaphots.get(indList).getSelection().length);
1331 14 kreverch
                                                                                        for ( int indSelect=0;indSelect<listsFieldSnaphots.get(indList).getSelection().length;indSelect++){
1332 14 kreverch
                                                                                                String[] keysPropPermit = (String[]) zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getPermitValue().keySet().toArray(new String[0]);
1333 14 kreverch
                                                                                                log.debug("second loop keys "+keysPropPermit+" selection in use "+listsFieldSnaphots.get(indList).getSelection()[indSelect]);
1334 14 kreverch
                                                                                                for ( int indPermit=0; indPermit<keysPropPermit.length;indPermit++){
1335 14 kreverch
                                                                                                        String keyPropPermit = keysPropPermit[indPermit];
1336 14 kreverch
                                                                                                        log.debug("Thirth if "+keyPropPermit+" "+zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getPermitValue().get(keyPropPermit));
1337 14 kreverch
                                                                                                        if ( zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getPermitValue().get(keyPropPermit).equals(listsFieldSnaphots.get(indList).getSelection()[indSelect]) ){
1338 14 kreverch
                                                                                                                list4List.add(keyPropPermit);
1339 14 kreverch
1340 14 kreverch
                                                                                                        }
1341 14 kreverch
                                                                                                }
1342 14 kreverch
                                                                                        }
1343 14 kreverch
1344 14 kreverch
                                                                                        zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).setMultivalues(list4List);
1345 14 kreverch
                                                                                        log.debug( " "+list4List+ zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getMultivalues());
1346 14 kreverch
                                                                                }
1347 14 kreverch
                                                                        }
1348 14 kreverch
                                                                }
1349 14 kreverch
                                                        }
1350 14 kreverch
                                                }
1351 14 kreverch
                                        }
1352 14 kreverch
                                        zsnap.zfsEnableSnapshots();
1353 14 kreverch
                                        String[] keysPropError = zsnap.getError().keySet().toArray(new String[0]);
1354 14 kreverch
                                        //String[] keysProp = (String[]) zfs.getZserver().zProperties.keySet().toArray(new String[0]);
1355 14 kreverch
                                        Arrays.sort(keysPropError);
1356 14 kreverch
                                        String textBox = "";
1357 14 kreverch
                                        for (int i = 0; i < keysPropError.length; i++) {
1358 14 kreverch
                                                String keyPropError = keysPropError[i];
1359 14 kreverch
                                                textBox = textBox +zsnap.getError().get(keyPropError)+".\n";
1360 14 kreverch
                                        }
1361 14 kreverch
                                        if (keysPropError.length>0){
1362 14 kreverch
                                                MessageBox messageBoxInfo = new MessageBox(shell, SWT.DIALOG_TRIM);
1363 14 kreverch
                                                messageBoxInfo.setText("Warning");
1364 14 kreverch
                                                messageBoxInfo.setMessage(textBox);
1365 14 kreverch
                                                messageBoxInfo.open();
1366 14 kreverch
                                        }else{
1367 14 kreverch
                                                for (int indList=0;indList<listsFieldSnaphots.size();indList++){
1368 14 kreverch
                                                        listsFieldSnaphots.get(indList).deselectAll();
1369 14 kreverch
                                                }
1370 14 kreverch
                                        }
1371 14 kreverch
1372 14 kreverch
                                        refreshConfigSnapshot();
1373 14 kreverch
                                }
1374 14 kreverch
                        }
1375 14 kreverch
                });
1376 14 kreverch
                Button btnDisableSnapshots = new Button(groupActiveSnapshot, SWT.None);
1377 14 kreverch
                btnDisableSnapshots.setText("Disable Snapshots");
1378 14 kreverch
                btnDisableSnapshots.addListener(SWT.Selection, new Listener() {
1379 14 kreverch
1380 14 kreverch
                        public void handleEvent(final Event event) {
1381 14 kreverch
                                //zsnap = zfs;
1382 14 kreverch
                                boolean checkValue=true;
1383 14 kreverch
                                if (! zfs.getZvol().zProperties.get("name").getValue().equalsIgnoreCase("")){
1384 14 kreverch
1385 14 kreverch
                                        String[] keysProp = (String[]) zsnap.getZsnapshots().zSchedulerProperties.keySet().toArray(new String[0]);
1386 14 kreverch
                                        Arrays.sort(keysProp);
1387 14 kreverch
1388 14 kreverch
                                        for (int i = 0; i < keysProp.length; i++) {
1389 14 kreverch
                                                keyProp = keysProp[i];
1390 14 kreverch
                                                log.debug("btnEnableSnapshot :"+keyProp);
1391 14 kreverch
                                                if ( zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getValue().equalsIgnoreCase("")){
1392 14 kreverch
                                                        checkValue=false;
1393 14 kreverch
                                                }
1394 14 kreverch
                                        }
1395 14 kreverch
                                        if (checkValue == true){
1396 14 kreverch
                                                zsnap.zfsDisableSnapshots();
1397 14 kreverch
                                                refreshConfigSnapshot();
1398 14 kreverch
1399 14 kreverch
                                        }
1400 14 kreverch
                                }
1401 14 kreverch
1402 14 kreverch
                        }
1403 14 kreverch
                });
1404 14 kreverch
1405 14 kreverch
        }
1406 14 kreverch
1407 14 kreverch
        /************************************************************************************************************************************
1408 14 kreverch
         *
1409 14 kreverch
         * Create tabItem Replication Config
1410 14 kreverch
         *
1411 14 kreverch
         ************************************************************************************************************************************/
1412 14 kreverch
1413 14 kreverch
        private void createTabItemReplica(){
1414 14 kreverch
                tbtmReplica = new TabItem(tabFolderConfig, SWT.NONE);
1415 14 kreverch
                tbtmReplica.setText("Replication Configuration");
1416 14 kreverch
                compositeReplica = new Composite(tabFolderConfig, SWT.NONE);
1417 14 kreverch
                tbtmReplica.setControl(compositeReplica);
1418 14 kreverch
                GridLayout gridLayoutActiveReplica = new GridLayout();
1419 14 kreverch
                //gridLayoutCreateIscsi.numColumns =2;
1420 14 kreverch
                compositeReplica.setLayout(gridLayoutActiveReplica);
1421 14 kreverch
                compositeReplica.setBackground(tabFolderBackgroundColor);
1422 14 kreverch
1423 14 kreverch
                Group groupActiveReplica=new Group(compositeReplica,SWT.NONE);
1424 14 kreverch
                groupActiveReplica.setBackground(groupBackgroundColor);
1425 14 kreverch
                groupActiveReplica.setLayout(new GridLayout());
1426 14 kreverch
                GridData gridDataActiveReplica=new GridData(SWT.FILL, SWT.FILL, true, true);
1427 14 kreverch
                //gridDataActiveSnapshot.heightHint=500;
1428 14 kreverch
                groupActiveReplica.setLayoutData(gridDataActiveReplica);
1429 14 kreverch
1430 14 kreverch
                ScrolledComposite scrolledReplicaConfig=new ScrolledComposite(groupActiveReplica,SWT.V_SCROLL);
1431 14 kreverch
                scrolledReplicaConfig.setLayoutData(new GridData(GridData.FILL_BOTH));
1432 14 kreverch
                Composite compositeWidgetReplica=new Composite(scrolledReplicaConfig,SWT.NONE);
1433 14 kreverch
                compositeWidgetReplica.setBackground(compositeBackgroundColor);
1434 14 kreverch
                GridLayout gridLayoutWidget = new GridLayout();
1435 14 kreverch
                gridLayoutWidget.numColumns =2;
1436 14 kreverch
                compositeWidgetReplica.setLayout(gridLayoutWidget);
1437 14 kreverch
1438 14 kreverch
                GridData gridDataTitleReplica = new GridData(GridData.FILL, GridData.CENTER, true, false);
1439 14 kreverch
                gridDataTitleReplica.horizontalSpan = 2;
1440 14 kreverch
                Label lblTitreConfigReplica = new Label(compositeWidgetReplica, SWT.CENTER|SWT.BORDER);
1441 14 kreverch
                lblTitreConfigReplica.setLayoutData(gridDataTitleReplica);
1442 14 kreverch
                lblTitreConfigReplica.setFont(fontTitle);
1443 14 kreverch
                lblTitreConfigReplica.setText("Enable/Disable Replication");
1444 14 kreverch
                lblTitreConfigReplica.setBackground(labelTitleBackgroundColor);
1445 14 kreverch
1446 14 kreverch
                String[] keysProp = (String[]) zfs.getZreplicas().zSchedulerProperties.keySet().toArray(new String[0]);
1447 14 kreverch
                Arrays.sort(keysProp);
1448 14 kreverch
1449 14 kreverch
                labelsFieldReplicaValue.clear();
1450 14 kreverch
                labelsFieldReplica.clear();
1451 14 kreverch
                textsFieldReplica.clear();
1452 14 kreverch
                listsFieldReplica.clear();
1453 14 kreverch
                for (int i = 0; i < keysProp.length; i++) {
1454 14 kreverch
                        keyProp = keysProp[i];
1455 14 kreverch
1456 14 kreverch
                        if ( "nofreeentry".equalsIgnoreCase(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getType()) && (zfs.getZreplicas().zSchedulerProperties.get(keyProp).getPermitValue() !=null)){
1457 14 kreverch
                                Label lbl = new Label(compositeWidgetReplica, SWT.NONE);
1458 14 kreverch
                                lbl.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
1459 14 kreverch
                                lbl.setText(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getLabelProperty());
1460 14 kreverch
                                lbl.setFont(fontWidget);
1461 14 kreverch
                                lbl.setBackground(labelFieldBackgroundColor);
1462 14 kreverch
                                labelsFieldReplicaValue.add(new Label(compositeWidgetReplica, SWT.BORDER));
1463 14 kreverch
                                labelsFieldReplicaValue.get(labelsFieldReplicaValue.size()-1).setData(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getNameProperty());
1464 14 kreverch
                                labelsFieldReplicaValue.get(labelsFieldReplicaValue.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
1465 14 kreverch
                                labelsFieldReplicaValue.get(labelsFieldReplicaValue.size()-1).setFont(fontWidget);
1466 14 kreverch
                                labelsFieldReplicaValue.get(labelsFieldReplicaValue.size()-1).setBackground(labelFieldBackgroundColor);
1467 14 kreverch
                                listsFieldReplica.add(new org.eclipse.swt.widgets.List(compositeWidgetReplica, SWT.WRAP |SWT.BORDER|SWT.V_SCROLL|SWT.MULTI));
1468 14 kreverch
                                GridData grdData_listReplicas = new GridData(GridData.FILL, GridData.CENTER, true, false);
1469 14 kreverch
                                grdData_listReplicas.heightHint=96;
1470 14 kreverch
                                grdData_listReplicas.horizontalSpan=2;
1471 14 kreverch
                                listsFieldReplica.get(listsFieldReplica.size()-1).setLayoutData(grdData_listReplicas);
1472 14 kreverch
                                listsFieldReplica.get(listsFieldReplica.size()-1).setData(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getNameProperty());
1473 14 kreverch
                                String [] valuePermiValue = zfs.getZreplicas().zSchedulerProperties.get(keyProp).getPermitValue().values().toArray(new String[0]);
1474 14 kreverch
                                Arrays.sort(valuePermiValue);
1475 14 kreverch
                                listsFieldReplica.get(listsFieldReplica.size()-1).setItems(valuePermiValue);
1476 14 kreverch
1477 14 kreverch
                        }
1478 14 kreverch
                }
1479 14 kreverch
                for (int i = 0; i < keysProp.length; i++) {
1480 14 kreverch
                        keyProp = keysProp[i];
1481 14 kreverch
                        if ( "noupdateable".equalsIgnoreCase(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getType())) {
1482 14 kreverch
                                Label lbl = new Label(compositeWidgetReplica, SWT.NONE);
1483 14 kreverch
                                lbl.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
1484 14 kreverch
                                lbl.setText(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getLabelProperty());
1485 14 kreverch
                                lbl.setFont(fontWidget);
1486 14 kreverch
                                lbl.setBackground(labelFieldBackgroundColor);
1487 14 kreverch
                                labelsFieldReplica.add(new Label(compositeWidgetReplica, SWT.NONE));
1488 14 kreverch
                                labelsFieldReplica.get(labelsFieldReplica.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
1489 14 kreverch
                                //labelsField.get(labelsField.size()-1).setText(zfs.getZvol().zProperties.get(keyProp).getNameProperty());
1490 14 kreverch
                                labelsFieldReplica.get(labelsFieldReplica.size()-1).setData(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getNameProperty());
1491 14 kreverch
                                labelsFieldReplica.get(labelsFieldReplica.size()-1).setBackground(labelFieldBackgroundColor);
1492 14 kreverch
                        }else{
1493 14 kreverch
                                if ( "freeentry".equalsIgnoreCase(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getType())){
1494 14 kreverch
                                        Label lbl = new Label(compositeWidgetReplica, SWT.NONE);
1495 14 kreverch
                                        lbl.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
1496 14 kreverch
                                        lbl.setText(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getLabelProperty());
1497 14 kreverch
                                        lbl.setFont(fontWidget);
1498 14 kreverch
                                        lbl.setBackground(labelFieldBackgroundColor);
1499 14 kreverch
                                        textsFieldReplica.add(new Text(compositeWidgetReplica,SWT.WRAP| SWT.BORDER));
1500 14 kreverch
                                        textsFieldReplica.get(textsFieldReplica.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
1501 14 kreverch
                                        //textsField.get(textsField.size()-1).setText(zfs.getZvol().zProperties.get(keyProp).getNameProperty());
1502 14 kreverch
                                        textsFieldReplica.get(textsFieldReplica.size()-1).setData(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getNameProperty());
1503 14 kreverch
                                        textsFieldReplica.get(textsFieldReplica.size()-1).setBackground(textFieldBackgroundColor);
1504 14 kreverch
                                }else{
1505 14 kreverch
1506 14 kreverch
1507 14 kreverch
                                        if ("nofreeentry".equalsIgnoreCase(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getType()) && zfs.getZreplicas().zSchedulerProperties.get(keyProp).getPermitValue() ==null){
1508 14 kreverch
1509 14 kreverch
1510 14 kreverch
                                                Label lbl = new Label(compositeWidgetReplica, SWT.NONE);
1511 14 kreverch
                                                lbl.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
1512 14 kreverch
                                                lbl.setText(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getLabelProperty());
1513 14 kreverch
                                                lbl.setFont(fontWidget);
1514 14 kreverch
                                                lbl.setBackground(labelFieldBackgroundColor);
1515 14 kreverch
1516 14 kreverch
                                                combosFieldReplica.add((new Combo(compositeWidgetReplica, SWT.READ_ONLY)));
1517 14 kreverch
                                                GridData grdData_listReplicas = new GridData(GridData.FILL, GridData.CENTER, true, false);
1518 14 kreverch
                                                combosFieldReplica.get(combosFieldReplica.size()-1).setLayoutData(grdData_listReplicas);
1519 14 kreverch
                                                combosFieldReplica.get(combosFieldReplica.size()-1).setData(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getNameProperty());
1520 14 kreverch
1521 14 kreverch
                                                log.debug("createTabItemReplica "+keyProp);
1522 14 kreverch
                                                if (keyProp.equalsIgnoreCase("server")){
1523 14 kreverch
                                                        lbl = new Label(compositeWidgetReplica, SWT.NONE);
1524 14 kreverch
                                                        lbl.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
1525 14 kreverch
                                                        lbl.setText(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getLabelProperty());
1526 14 kreverch
                                                        lbl.setFont(fontWidget);
1527 14 kreverch
                                                        lbl.setBackground(labelFieldBackgroundColor);
1528 14 kreverch
1529 14 kreverch
                                                        labelsFieldReplica.add(new Label(compositeWidgetReplica, SWT.NONE));
1530 14 kreverch
                                                        labelsFieldReplica.get(labelsFieldReplica.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
1531 14 kreverch
                                                        //labelsField.get(labelsField.size()-1).setText(zfs.getZvol().zProperties.get(keyProp).getNameProperty());
1532 14 kreverch
                                                        labelsFieldReplica.get(labelsFieldReplica.size()-1).setData(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getNameProperty());
1533 14 kreverch
                                                        labelsFieldReplica.get(labelsFieldReplica.size()-1).setBackground(labelFieldBackgroundColor);
1534 14 kreverch
                                                        combosFieldReplica.get(combosFieldReplica.size()-1).addListener(SWT.Selection, new Listener() {
1535 14 kreverch
1536 14 kreverch
                                                                public void handleEvent(final Event event) {
1537 14 kreverch
                                                                        final Combo comboSrv = (Combo) event.widget;
1538 14 kreverch
                                                                        zfs.getServer(comboSrv.getText());
1539 14 kreverch
                                                                        List zpoolList = zfs.zpoolList();
1540 14 kreverch
                                                                        String[] keysProp = (String[]) zfs.getZreplicas().zSchedulerProperties.keySet().toArray(new String[0]);
1541 14 kreverch
                                                                        Arrays.sort(keysProp);
1542 14 kreverch
1543 14 kreverch
                                                                        for (int i = 0; i < keysProp.length; i++) {
1544 14 kreverch
                                                                                keyProp = keysProp[i];
1545 14 kreverch
                                                                                if ( "nofreeentry".equalsIgnoreCase(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getType())&& zfs.getZreplicas().zSchedulerProperties.get(keyProp).getPermitValue() ==null) {
1546 14 kreverch
                                                                                        if (keyProp.equalsIgnoreCase("replicapool")){
1547 14 kreverch
1548 14 kreverch
                                                                                                for (int indCombo=0;indCombo<combosFieldReplica.size();indCombo++){
1549 14 kreverch
                                                                                                        if ( combosFieldReplica.get(indCombo).getData().equals(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getNameProperty()) ){
1550 14 kreverch
                                                                                                                combosFieldReplica.get(indCombo).removeAll();
1551 14 kreverch
                                                                                                                String[] keysPropSrv = (String[]) zfs.getCacheSession().keySet().toArray(new String[0]);
1552 14 kreverch
                                                                                                                Arrays.sort(keysPropSrv);
1553 14 kreverch
                                                                                                                for (int cptPool=0;cptPool<zpoolList.size();cptPool++){
1554 14 kreverch
                                                                                                                        combosFieldReplica.get(indCombo).add(zpoolList.get(cptPool).toString());
1555 14 kreverch
                                                                                                                        log.debug("REFRESHConfig3 : "+zpoolList.get(cptPool).toString());
1556 14 kreverch
                                                                                                                }
1557 14 kreverch
                                                                                                        }
1558 14 kreverch
                                                                                                }
1559 14 kreverch
1560 14 kreverch
                                                                                        }
1561 14 kreverch
                                                                                }
1562 14 kreverch
                                                                        }
1563 14 kreverch
1564 14 kreverch
                                                                }
1565 14 kreverch
                                                        });
1566 14 kreverch
                                                }
1567 14 kreverch
1568 14 kreverch
                                        }
1569 14 kreverch
                                }
1570 14 kreverch
                        }
1571 14 kreverch
                }
1572 14 kreverch
                Button btnEnableReplicas = new Button(compositeWidgetReplica, SWT.None);
1573 14 kreverch
                btnEnableReplicas.setText("Enable Replication");
1574 14 kreverch
                btnEnableReplicas.addListener(SWT.Selection, new Listener() {
1575 14 kreverch
                        private List<Object> list4List;
1576 14 kreverch
1577 14 kreverch
                        public void handleEvent(final Event event) {
1578 14 kreverch
1579 14 kreverch
1580 14 kreverch
                                if (! zfs.getZvol().zProperties.get("name").getValue().equalsIgnoreCase("")){
1581 14 kreverch
1582 14 kreverch
                                        String[] keysProp = (String[]) zfs.getZreplicas().zSchedulerProperties.keySet().toArray(new String[0]);
1583 14 kreverch
                                        Arrays.sort(keysProp);
1584 14 kreverch
1585 14 kreverch
                                        for (int i = 0; i < keysProp.length; i++) {
1586 14 kreverch
                                                keyProp = keysProp[i];
1587 14 kreverch
                                                log.debug("btnEnableReplication :"+keyProp);
1588 14 kreverch
                                                if ( "noupdateable".equalsIgnoreCase(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getType())) {
1589 14 kreverch
                                                        for (int indLabel=0;indLabel<labelsFieldReplica.size();indLabel++){
1590 14 kreverch
                                                                if ( labelsFieldReplica.get(indLabel).getData().equals(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getNameProperty()) ){
1591 14 kreverch
                                                                        zfs.getZreplicas().zSchedulerProperties.get(keyProp).setValue(labelsFieldReplica.get(indLabel).getText());
1592 14 kreverch
1593 14 kreverch
                                                                }
1594 14 kreverch
                                                        }
1595 14 kreverch
                                                }else{
1596 14 kreverch
                                                        if ( "freeentry".equalsIgnoreCase(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getType())) {
1597 14 kreverch
                                                                for (int indText=0;indText<textsFieldReplica.size();indText++){
1598 14 kreverch
                                                                        if ( textsFieldReplica.get(indText).getData().equals(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getNameProperty()) ){
1599 14 kreverch
                                                                                zfs.getZreplicas().zSchedulerProperties.get(keyProp).setValue(textsFieldReplica.get(indText).getText());
1600 14 kreverch
                                                                        }
1601 14 kreverch
                                                                }
1602 14 kreverch
1603 14 kreverch
                                                        }else{
1604 14 kreverch
1605 14 kreverch
                                                                if ( "nofreeentry".equalsIgnoreCase(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getType()) && (zfs.getZreplicas().zSchedulerProperties.get(keyProp).getPermitValue() !=null)){
1606 14 kreverch
                                                                        for (int indList=0;indList<listsFieldReplica.size();indList++){
1607 14 kreverch
                                                                                log.debug("first loop"+listsFieldReplica.get(indList).getData()+" "+zfs.getZreplicas().zSchedulerProperties.get(keyProp).getNameProperty());
1608 14 kreverch
                                                                                if ( listsFieldReplica.get(indList).getData().equals(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getNameProperty()) ){
1609 14 kreverch
                                                                                        list4List = new ArrayList<Object>();
1610 14 kreverch
                                                                                        log.debug("second if "+listsFieldReplica.get(indList).getSelection().length);
1611 14 kreverch
                                                                                        for ( int indSelect=0;indSelect<listsFieldReplica.get(indList).getSelection().length;indSelect++){
1612 14 kreverch
                                                                                                String[] keysPropPermit = (String[]) zfs.getZreplicas().zSchedulerProperties.get(keyProp).getPermitValue().keySet().toArray(new String[0]);
1613 14 kreverch
                                                                                                log.debug("second loop keys "+keysPropPermit+" selection in use "+listsFieldReplica.get(indList).getSelection()[indSelect]);
1614 14 kreverch
                                                                                                for ( int indPermit=0; indPermit<keysPropPermit.length;indPermit++){
1615 14 kreverch
                                                                                                        String keyPropPermit = keysPropPermit[indPermit];
1616 14 kreverch
                                                                                                        log.debug("Thirth if "+keyPropPermit+" "+zfs.getZreplicas().zSchedulerProperties.get(keyProp).getPermitValue().get(keyPropPermit));
1617 14 kreverch
                                                                                                        if ( zfs.getZreplicas().zSchedulerProperties.get(keyProp).getPermitValue().get(keyPropPermit).equals(listsFieldReplica.get(indList).getSelection()[indSelect]) ){
1618 14 kreverch
                                                                                                                list4List.add(keyPropPermit);
1619 14 kreverch
1620 14 kreverch
                                                                                                        }
1621 14 kreverch
                                                                                                }
1622 14 kreverch
                                                                                        }
1623 14 kreverch
1624 14 kreverch
                                                                                        zfs.getZreplicas().zSchedulerProperties.get(keyProp).setMultivalues(list4List);
1625 14 kreverch
                                                                                        log.debug( " "+list4List+ zfs.getZreplicas().zSchedulerProperties.get(keyProp).getMultivalues());
1626 14 kreverch
                                                                                }
1627 14 kreverch
                                                                        }
1628 14 kreverch
                                                                }
1629 14 kreverch
                                                                if ( "nofreeentry".equalsIgnoreCase(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getType()) && (zfs.getZreplicas().zSchedulerProperties.get(keyProp).getPermitValue() ==null)){
1630 14 kreverch
                                                                        for (int indCombo=0;indCombo<combosFieldReplica.size();indCombo++){
1631 14 kreverch
                                                                                if ( combosFieldReplica.get(indCombo).getData().equals(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getNameProperty()) ){
1632 14 kreverch
                                                                                        zfs.getZreplicas().zSchedulerProperties.get(keyProp).setValue(combosFieldReplica.get(indCombo).getText());
1633 14 kreverch
                                                                                }
1634 14 kreverch
                                                                        }
1635 14 kreverch
                                                                }
1636 14 kreverch
                                                        }
1637 14 kreverch
                                                }
1638 14 kreverch
                                        }
1639 14 kreverch
                                        zfs.getZreplicas().zSchedulerProperties.get("name").setValue(zfs.getZvol().zProperties.get("name").getValue());
1640 14 kreverch
                                        if ( tree.getSelectionCount() >0){
1641 14 kreverch
1642 14 kreverch
                                                if (tree.getSelection()[0].getParentItem() != null){
1643 14 kreverch
                                                        TreeItem topRoot = tree.getSelection()[0];
1644 14 kreverch
                                                        while (topRoot.getParentItem() != null){
1645 14 kreverch
                                                                topRoot = topRoot.getParentItem();
1646 14 kreverch
                                                        }
1647 14 kreverch
                                                        TreeItem treeZfsListItem = tree.getSelection()[0];
1648 14 kreverch
                                                        tree.select(treeZfsListItem);
1649 14 kreverch
                                                        zfs.getZserver().zProperties.get("serverIP").setValue(topRoot.getText());
1650 14 kreverch
                                                }
1651 14 kreverch
                                        }
1652 14 kreverch
                                        zfs.zfsEnableReplicas();
1653 14 kreverch
                                        String[] keysPropError = zfs.getError().keySet().toArray(new String[0]);
1654 14 kreverch
                                        //String[] keysProp = (String[]) zfs.getZserver().zProperties.keySet().toArray(new String[0]);
1655 14 kreverch
                                        Arrays.sort(keysPropError);
1656 14 kreverch
                                        String textBox = "";
1657 14 kreverch
                                        for (int i = 0; i < keysPropError.length; i++) {
1658 14 kreverch
                                                String keyPropError = keysPropError[i];
1659 14 kreverch
                                                textBox = textBox +zfs.getError().get(keyPropError)+".\n";
1660 14 kreverch
                                        }
1661 14 kreverch
                                        if (keysPropError.length>0){
1662 14 kreverch
                                                MessageBox messageBoxInfo = new MessageBox(shell, SWT.DIALOG_TRIM);
1663 14 kreverch
                                                messageBoxInfo.setText("Warning");
1664 14 kreverch
                                                messageBoxInfo.setMessage(textBox);
1665 14 kreverch
                                                messageBoxInfo.open();
1666 14 kreverch
                                        }else{
1667 14 kreverch
                                                for (int indList=0;indList<listsFieldReplica.size();indList++){
1668 14 kreverch
                                                        listsFieldReplica.get(indList).deselectAll();
1669 14 kreverch
                                                }
1670 14 kreverch
                                        }
1671 14 kreverch
1672 14 kreverch
                                        refreshConfigReplica();
1673 14 kreverch
                                }
1674 14 kreverch
                        }
1675 14 kreverch
                });
1676 14 kreverch
                Button btnDisableReplicas = new Button(compositeWidgetReplica, SWT.None);
1677 14 kreverch
                btnDisableReplicas.setText("Disable Replication");
1678 14 kreverch
                btnDisableReplicas.addListener(SWT.Selection, new Listener() {
1679 14 kreverch
1680 14 kreverch
                        public void handleEvent(final Event event) {
1681 14 kreverch
                                //zsnap = zfs;
1682 14 kreverch
                                boolean checkValue=true;
1683 14 kreverch
                                if (! zfs.getZvol().zProperties.get("name").getValue().equalsIgnoreCase("")){
1684 14 kreverch
                                        zfs.getZreplicas().zSchedulerProperties.get("name").setValue(zfs.getZvol().zProperties.get("name").getValue());
1685 14 kreverch
                                        zfs.zfsDisableReplicas();
1686 14 kreverch
                                        refreshConfigReplica();
1687 14 kreverch
1688 14 kreverch
                                }
1689 14 kreverch
1690 14 kreverch
                        }
1691 14 kreverch
                });
1692 14 kreverch
1693 14 kreverch
                scrolledReplicaConfig.setContent(compositeWidgetReplica);
1694 14 kreverch
                scrolledReplicaConfig.setExpandVertical(true);
1695 14 kreverch
                scrolledReplicaConfig.setExpandHorizontal(true);
1696 14 kreverch
                scrolledReplicaConfig.setMinSize(compositeWidgetReplica.computeSize(SWT.DEFAULT,SWT.DEFAULT));
1697 14 kreverch
        }
1698 14 kreverch
1699 14 kreverch
1700 14 kreverch
1701 14 kreverch
1702 14 kreverch
        public void refreshTreeZFSList(final TreeItem rootTree){
1703 14 kreverch
1704 14 kreverch
                thrConnect = new Thread(new Runnable() {
1705 14 kreverch
                        public void run() {
1706 14 kreverch
                                log.debug("start update ZFS volumes list ....");
1707 14 kreverch
                                zfsList = zfs.zfsList();
1708 14 kreverch
1709 14 kreverch
                                log.debug(zfsList.size());
1710 14 kreverch
                                for (int i = 0; i < zfsList.size(); i++) {
1711 14 kreverch
                                        final int ind=i;
1712 14 kreverch
                                        log.debug("refreshTreeZFSList "+zfsList.get(i));
1713 14 kreverch
                                        zfs.zfsGetAllVolume(zfsList.get(i).toString());
1714 14 kreverch
1715 14 kreverch
                                        //zfs.zfsGetInfoByProperty(zfsList.get(i).toString(), "type");
1716 14 kreverch
                                        if ("filesystem".equals(zfs.getZvol().zProperties.get("type").getValue())){
1717 14 kreverch
                                                infoUsedSize=zfs.getZvol().zProperties.get("usedbydataset").getValue()+"/"+zfs.getZvol().zProperties.get("available").getValue();
1718 14 kreverch
                                        }else{
1719 14 kreverch
                                                infoUsedSize=zfs.getZvol().zProperties.get("used").getValue()+" / "+zfs.getZvol().zProperties.get("volsize").getValue();
1720 14 kreverch
                                        }
1721 14 kreverch
                                        if ( ("volume".equals(zfs.getZvol().zProperties.get("type").getValue()) && zfs.getIscsiListConfigVol(zfsList.get(i).toString()) && ! "".equalsIgnoreCase(zfs.getZiscsi().zProperties.get("tid").getValue()))
1722 14 kreverch
                                                        || ("filesystem".equals(zfs.getZvol().zProperties.get("type").getValue()) && "yes".equals(zfs.getZvol().zProperties.get("mounted").getValue()))        ){
1723 14 kreverch
                                                Display.getDefault().syncExec(new Runnable() {
1724 14 kreverch
                                                        public void run() {
1725 14 kreverch
                                                                updateItemTreeZfsList(true, zfsList.get(ind).toString(),  rootTree,infoUsedSize,-1);
1726 14 kreverch
                                                        }
1727 14 kreverch
                                                });
1728 14 kreverch
                                        }else{
1729 14 kreverch
                                                Display.getDefault().syncExec(new Runnable() {
1730 14 kreverch
                                                        public void run() {
1731 14 kreverch
                                                                updateItemTreeZfsList(false, zfsList.get(ind).toString(),  rootTree,infoUsedSize,-1);
1732 14 kreverch
                                                        }
1733 14 kreverch
                                                });
1734 14 kreverch
                                        }
1735 14 kreverch
                                }
1736 14 kreverch
                                Display.getDefault().syncExec(new Runnable() {
1737 14 kreverch
                                        public void run() {
1738 14 kreverch
                                                btnConnectServer.setEnabled(true);
1739 14 kreverch
                                                tabFolderNav.setEnabled(true);
1740 14 kreverch
                                                wPB.close();
1741 14 kreverch
                                        }
1742 14 kreverch
                                });
1743 14 kreverch
                        }
1744 14 kreverch
1745 14 kreverch
                });
1746 14 kreverch
                thrConnect.start();
1747 14 kreverch
                log.debug("refreshZFSList");
1748 14 kreverch
        }
1749 14 kreverch
1750 14 kreverch
        public void refreshTreeZpoolList(){
1751 14 kreverch
1752 14 kreverch
                if (zfs.getCacheSession().containsKey(zfs.getZserver().zProperties.get("serverIP").getValue()) ){
1753 14 kreverch
                        final TreeItem root = treeZpool.getSelection()[0];
1754 14 kreverch
                        root.setImage(imageServerOnline);
1755 14 kreverch
                        log.debug("refreshTreeZpoolList "+" "+keyProp);
1756 14 kreverch
1757 14 kreverch
                        zpoolList = zfs.zpoolList();
1758 14 kreverch
                        for (int indPool = 0; indPool < zpoolList.size(); indPool++) {
1759 14 kreverch
                                TreeItem item = new TreeItem(root, 0);
1760 14 kreverch
                                item.setText(zpoolList.get(indPool).toString());
1761 14 kreverch
                                item.setImage(imageStorage);
1762 14 kreverch
                                item.setData(zpoolList.get(indPool).toString());
1763 14 kreverch
                                //new TreeItem(root, 0);
1764 14 kreverch
                        }
1765 14 kreverch
                        boolean checkExistInTree = false;
1766 14 kreverch
1767 14 kreverch
                        for (int ind=0;ind<tree.getItemCount();ind++){
1768 14 kreverch
                                log.debug("refreshTreeZpoolList "+tree.getItem(ind).getData().toString()+" "+zfs.getZserver().zProperties.get("serverIP").getValue());
1769 14 kreverch
                                if ( tree.getItem(ind).getData().toString().equalsIgnoreCase(zfs.getZserver().zProperties.get("serverIP").getValue())){
1770 14 kreverch
                                        checkExistInTree=true;
1771 14 kreverch
                                }
1772 14 kreverch
                        }
1773 14 kreverch
                        if ( ! checkExistInTree ){
1774 14 kreverch
                                TreeItem rootTreeZvolFS = new TreeItem(tree,SWT.None);
1775 14 kreverch
                                rootTreeZvolFS.setText(zfs.getZserver().zProperties.get("serverIP").getValue());
1776 14 kreverch
                                rootTreeZvolFS.setData(zfs.getZserver().zProperties.get("serverIP").getValue());
1777 14 kreverch
                                rootTreeZvolFS.setImage(imageStorageServer);
1778 14 kreverch
                                refreshTreeZFSList(rootTreeZvolFS);
1779 14 kreverch
                        }else{
1780 14 kreverch
                                btnConnectServer.setEnabled(true);
1781 14 kreverch
                                tabFolderNav.setEnabled(true);
1782 14 kreverch
                                wPB.close();
1783 14 kreverch
                        }
1784 14 kreverch
                }else{
1785 14 kreverch
                        treeZpool.clearAll(true);
1786 14 kreverch
                        treeZpool.setItemCount(0);
1787 14 kreverch
                        List<Object> listGetServer = zfs.getListServer();
1788 14 kreverch
1789 14 kreverch
                        for (int i=0;i<listGetServer.size();i++){
1790 14 kreverch
                                zfs.getServer(listGetServer.get(i).toString());
1791 14 kreverch
                                final TreeItem root = new TreeItem(treeZpool,SWT.None);
1792 14 kreverch
                                root.setText(zfs.getZserver().zProperties.get("serverIP").getValue());
1793 14 kreverch
                                root.setData(zfs.getZserver().zProperties.get("serverIP").getValue());
1794 14 kreverch
                                root.setImage(imageServerOffline);
1795 14 kreverch
1796 14 kreverch
                        }
1797 14 kreverch
1798 14 kreverch
                }
1799 14 kreverch
1800 14 kreverch
        }
1801 14 kreverch
1802 14 kreverch
1803 14 kreverch
        private void refreshInfoServer(){
1804 14 kreverch
                String[] keysProp = (String[]) zfs.getZserver().zProperties.keySet().toArray(new String[0]);
1805 14 kreverch
                Arrays.sort(keysProp);
1806 14 kreverch
1807 14 kreverch
                for (int i = 0; i < keysProp.length; i++) {
1808 14 kreverch
                        keyProp = keysProp[i];
1809 14 kreverch
                        if ( "noupdateable".equalsIgnoreCase(zfs.getZserver().zProperties.get(keyProp).getType())) {
1810 14 kreverch
                                for (int indLabel=0;indLabel<labelsFieldServer.size();indLabel++){
1811 14 kreverch
                                        if ( labelsFieldServer.get(indLabel).getData().equals(zfs.getZserver().zProperties.get(keyProp).getNameProperty()) ){
1812 14 kreverch
                                                labelsFieldServer.get(indLabel).setText(zfs.getZserver().zProperties.get(keyProp).getValue());
1813 14 kreverch
                                        }
1814 14 kreverch
                                }
1815 14 kreverch
                        }else{
1816 14 kreverch
                                if ( "freeentry".equalsIgnoreCase(zfs.getZserver().zProperties.get(keyProp).getType())) {
1817 14 kreverch
                                        for (int indText=0;indText<textsFieldServer.size();indText++){
1818 14 kreverch
                                                if ( textsFieldServer.get(indText).getData().equals(zfs.getZserver().zProperties.get(keyProp).getNameProperty()) ){
1819 14 kreverch
                                                        textsFieldServer.get(indText).setText(zfs.getZserver().zProperties.get(keyProp).getValue());
1820 14 kreverch
                                                }
1821 14 kreverch
                                        }
1822 14 kreverch
                                }else{
1823 14 kreverch
                                        if ( "nofreeentry".equalsIgnoreCase(zfs.getZserver().zProperties.get(keyProp).getType())) {
1824 14 kreverch
                                                for (int indCombo=0;indCombo<combosFieldServer.size();indCombo++){
1825 14 kreverch
                                                        if ( combosFieldServer.get(indCombo).getData().equals(zfs.getZserver().zProperties.get(keyProp).getNameProperty()) ){
1826 14 kreverch
                                                                combosFieldServer.get(indCombo).setText(zfs.getZserver().zProperties.get(keyProp).getValue());
1827 14 kreverch
                                                        }
1828 14 kreverch
                                                }
1829 14 kreverch
                                        }
1830 14 kreverch
                                }
1831 14 kreverch
                        }
1832 14 kreverch
                }
1833 14 kreverch
        }
1834 14 kreverch
1835 14 kreverch
        private void refreshInfoZpool(){
1836 14 kreverch
1837 14 kreverch
                String[] keysProp = (String[]) zfs.getZpool().zProperties.keySet().toArray(new String[0]);
1838 14 kreverch
                Arrays.sort(keysProp);
1839 14 kreverch
                log.debug(keysProp);
1840 14 kreverch
                for (int i = 0; i < keysProp.length; i++) {
1841 14 kreverch
                        keyProp = keysProp[i];
1842 14 kreverch
                        if ( "noupdateable".equalsIgnoreCase(zfs.getZpool().zProperties.get(keyProp).getType())) {
1843 14 kreverch
                                for (int indLabel=0;indLabel<labelsFieldPool.size();indLabel++){
1844 14 kreverch
                                        if ( labelsFieldPool.get(indLabel).getData().equals(zfs.getZpool().zProperties.get(keyProp).getNameProperty()) ){
1845 14 kreverch
                                                labelsFieldPool.get(indLabel).setText(zfs.getZpool().zProperties.get(keyProp).getValue());
1846 14 kreverch
                                        }
1847 14 kreverch
                                }
1848 14 kreverch
                        }else{
1849 14 kreverch
                                if ( "freeentry".equalsIgnoreCase(zfs.getZpool().zProperties.get(keyProp).getType())) {
1850 14 kreverch
                                        for (int indText=0;indText<textsFieldPool.size();indText++){
1851 14 kreverch
                                                if ( textsFieldPool.get(indText).getData().equals(zfs.getZpool().zProperties.get(keyProp).getNameProperty()) ){
1852 14 kreverch
                                                        textsFieldPool.get(indText).setText(zfs.getZpool().zProperties.get(keyProp).getValue());
1853 14 kreverch
                                                }
1854 14 kreverch
                                        }
1855 14 kreverch
                                }else{
1856 14 kreverch
                                        if ( "nofreeentry".equalsIgnoreCase(zfs.getZpool().zProperties.get(keyProp).getType())) {
1857 14 kreverch
                                                for (int indCombo=0;indCombo<combosFieldPool.size();indCombo++){
1858 14 kreverch
                                                        if ( combosFieldPool.get(indCombo).getData().equals(zfs.getZpool().zProperties.get(keyProp).getNameProperty()) ){
1859 14 kreverch
                                                                combosFieldPool.get(indCombo).setText(zfs.getZserver().zProperties.get(keyProp).getValue());
1860 14 kreverch
                                                        }
1861 14 kreverch
                                                }
1862 14 kreverch
                                        }
1863 14 kreverch
                                }
1864 14 kreverch
                        }
1865 14 kreverch
                }
1866 14 kreverch
1867 14 kreverch
                //Create Chart Provisioned Space
1868 14 kreverch
                dataCharset.clear();
1869 14 kreverch
                if ( !zfs.getZpool().zProperties.get("realuseablespace").getValue().equals("")){
1870 14 kreverch
1871 14 kreverch
                        String refUnit =zfs.getZpool().zProperties.get("realuseablespace").getValue().substring(zfs.getZpool().zProperties.get("realuseablespace").getValue().length()-1, zfs.getZpool().zProperties.get("realuseablespace").getValue().length());
1872 14 kreverch
                        log.debug(refUnit);
1873 14 kreverch
                        float provisionspace = zfs.convertInReferenceUnit(zfs.getZpool().zProperties.get("provisionspace").getValue(), refUnit);
1874 14 kreverch
                        float realuseablespace = zfs.convertInReferenceUnit(zfs.getZpool().zProperties.get("realuseablespace").getValue(), refUnit);
1875 14 kreverch
                        float provisionspaceInPourcent = guiTrt.dataInPourcent(provisionspace,realuseablespace);
1876 14 kreverch
                        float freespace = realuseablespace - provisionspace;
1877 14 kreverch
                        float freespaceInPourcent =  guiTrt.dataInPourcent(freespace,realuseablespace);
1878 14 kreverch
                        this.dataCharset.put("Provisioned Space: "+ zfs.getZpool().zProperties.get("provisionspace").getValue(), provisionspaceInPourcent);
1879 14 kreverch
                        this.dataCharset.put("Free Space: "+BigDecimal.valueOf(freespace).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()+refUnit, freespaceInPourcent  );
1880 14 kreverch
                        //this.dataCharset.put("Free : "+BigDecimal.valueOf(freeVal).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()+guiTrt.getUnit(), (100-guiTrt.formatChartDataInPourcent(zfs.getZpool().zProperties.get("provisionedspace").getValue(), zfs.getZpool().zProperties.get("realuseablespace").getValue()))) ;
1881 14 kreverch
                        PieDataset dataset = guiTrt.createDataset(dataCharset);
1882 14 kreverch
                        JFreeChart chartVolumeConfig = guiTrt.createChart(dataset, "Provisioned Space on "+zfs.getZpool().zProperties.get("realuseablespace").getValue());
1883 14 kreverch
                        if ( chartVolumeComposite != null){
1884 14 kreverch
                                if ( !chartVolumeComposite.isDisposed()){
1885 14 kreverch
                                        chartVolumeComposite.dispose();
1886 14 kreverch
                                }
1887 14 kreverch
                        }
1888 14 kreverch
1889 14 kreverch
                        //Create Grid for Chart
1890 14 kreverch
                        gridDataChart =new GridData(SWT.FILL, SWT.FILL, true, true);
1891 14 kreverch
                        //gridDataChart.heightHint = 200;
1892 14 kreverch
                        //Create Composite for Chart
1893 14 kreverch
                        chartVolumeComposite= new ChartComposite(compositeZpoolConfig, SWT.BORDER, chartVolumeConfig, true);
1894 14 kreverch
                        chartVolumeComposite.setLayoutData(gridDataChart);
1895 14 kreverch
1896 14 kreverch
                        //Create Chart Used Space
1897 14 kreverch
                        dataCharset.clear();
1898 14 kreverch
                        log.debug(refUnit);
1899 14 kreverch
                        float usedspace = zfs.convertInReferenceUnit(zfs.getZvol().zProperties.get("used").getValue(), refUnit);
1900 14 kreverch
                        float usedspaceInPourcent = guiTrt.dataInPourcent(usedspace,realuseablespace);
1901 14 kreverch
                        log.debug("usedspace :"+usedspace+" realuseablespace : "+realuseablespace+" usedspaceInPourcent "+usedspaceInPourcent);
1902 14 kreverch
                        freespace = realuseablespace - usedspace;
1903 14 kreverch
                        freespaceInPourcent =  guiTrt.dataInPourcent(freespace,realuseablespace);
1904 14 kreverch
                        log.debug("freespace : "+freespace+" freespaceInPourcent :"+freespaceInPourcent);
1905 14 kreverch
                        this.dataCharset.put("Used Space: "+ zfs.getZvol().zProperties.get("used").getValue(), usedspaceInPourcent);
1906 14 kreverch
                        this.dataCharset.put("Free Space: "+BigDecimal.valueOf(freespace).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()+refUnit, freespaceInPourcent  );
1907 14 kreverch
                        //this.dataCharset.put("Free : "+BigDecimal.valueOf(freeVal).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()+guiTrt.getUnit(), (100-guiTrt.formatChartDataInPourcent(zfs.getZpool().zProperties.get("provisionedspace").getValue(), zfs.getZpool().zProperties.get("realuseablespace").getValue()))) ;
1908 14 kreverch
                        PieDataset datasetUsed = guiTrt.createDataset(dataCharset);
1909 14 kreverch
                        JFreeChart chartZpoolUsedSpace = guiTrt.createChart(datasetUsed, "Used Space on "+zfs.getZpool().zProperties.get("realuseablespace").getValue());
1910 14 kreverch
                        if ( chartZpoolUsedComposite != null){
1911 14 kreverch
                                if ( !chartZpoolUsedComposite.isDisposed()){
1912 14 kreverch
                                        chartZpoolUsedComposite.dispose();
1913 14 kreverch
                                }
1914 14 kreverch
                        }
1915 14 kreverch
1916 14 kreverch
                        //Create Grid for Chart
1917 14 kreverch
                        gridDataChart =new GridData(SWT.FILL, SWT.FILL, true, true);
1918 14 kreverch
                        gridDataChart.heightHint = 200;
1919 14 kreverch
                        //gridDataChart.horizontalSpan = 2;
1920 14 kreverch
                        //Create Composite for Chart
1921 14 kreverch
                        chartZpoolUsedComposite= new ChartComposite(compositeZpoolConfig, SWT.BORDER, chartZpoolUsedSpace, true);
1922 14 kreverch
                        chartZpoolUsedComposite.setLayoutData(gridDataChart);
1923 14 kreverch
1924 14 kreverch
1925 14 kreverch
                        compositeZpoolConfig.layout();
1926 14 kreverch
                }
1927 14 kreverch
1928 14 kreverch
        }
1929 14 kreverch
1930 14 kreverch
        private void  refreshDisks(){
1931 14 kreverch
                zfs.getZpoolStatus();
1932 14 kreverch
                for ( int cptL=0;cptL<labelsFieldDisks.size();cptL++){
1933 14 kreverch
                        if ( !labelsFieldDisks.get(cptL).isDisposed()){
1934 14 kreverch
                                labelsFieldDisks.get(cptL).dispose();
1935 14 kreverch
                        }
1936 14 kreverch
                }
1937 14 kreverch
                for ( int cptL=0;cptL<labelsFieldZRaid.size();cptL++){
1938 14 kreverch
                        if ( !labelsFieldZRaid.get(cptL).isDisposed()){
1939 14 kreverch
                                labelsFieldZRaid.get(cptL).dispose();
1940 14 kreverch
                        }
1941 14 kreverch
                }
1942 14 kreverch
1943 14 kreverch
                if ( groupDisks != null && !groupDisks.isDisposed()){
1944 14 kreverch
                        groupDisks.dispose();
1945 14 kreverch
                }
1946 14 kreverch
                groupDisks = new Group(compositeDisks,SWT.NONE);
1947 14 kreverch
                groupDisks.setBackground(groupBackgroundColor);
1948 14 kreverch
                groupDisks.setLayout(new GridLayout());
1949 14 kreverch
1950 14 kreverch
                GridData gridDataDisks=new GridData(SWT.FILL, SWT.FILL, true, true);
1951 14 kreverch
                gridDataDisks.horizontalSpan=6;
1952 14 kreverch
                groupDisks.setLayoutData(gridDataDisks);
1953 14 kreverch
1954 14 kreverch
                if (scrolledDisks != null && !scrolledDisks.isDisposed()){
1955 14 kreverch
                        scrolledDisks.isDisposed();
1956 14 kreverch
                }
1957 14 kreverch
                scrolledDisks=new ScrolledComposite(groupDisks,SWT.V_SCROLL);
1958 14 kreverch
                scrolledDisks.setLayoutData(new GridData(GridData.FILL_BOTH));
1959 14 kreverch
1960 14 kreverch
                if (compositeWidgetDisks != null && !compositeWidgetDisks.isDisposed()){
1961 14 kreverch
                        compositeWidgetDisks.isDisposed();
1962 14 kreverch
                }
1963 14 kreverch
                compositeWidgetDisks=new Composite(scrolledDisks,SWT.NONE);
1964 14 kreverch
                compositeWidgetDisks.setBackground(compositeBackgroundColor);
1965 14 kreverch
                GridLayout gridLayoutWidgetDisks = new GridLayout();
1966 14 kreverch
                gridLayoutWidgetDisks.numColumns =6;
1967 14 kreverch
                compositeWidgetDisks.setLayout(gridLayoutWidgetDisks);
1968 14 kreverch
1969 14 kreverch
                GridData gridDataTitleDisks = new GridData(GridData.FILL, GridData.CENTER, true, false);
1970 14 kreverch
                gridDataTitleDisks.horizontalSpan = 6;
1971 14 kreverch
                if (compositeWidgetDisks != null && !compositeWidgetDisks.isDisposed()){
1972 14 kreverch
                        compositeWidgetDisks.isDisposed();
1973 14 kreverch
                }
1974 14 kreverch
                Label lblTitleInfoDisks = new Label(compositeWidgetDisks, SWT.CENTER|SWT.BORDER);
1975 14 kreverch
                lblTitleInfoDisks.setLayoutData(gridDataTitleDisks);
1976 14 kreverch
                lblTitleInfoDisks.setFont(fontTitle);
1977 14 kreverch
                lblTitleInfoDisks.setBackground(labelTitleBackgroundColor);
1978 14 kreverch
                lblTitleInfoDisks.setText("ZFS Informations Disks");
1979 14 kreverch
1980 14 kreverch
                String[] keysPropHashDisks = (String[]) zfs.getHashDisks().keySet().toArray(new String[0]);
1981 14 kreverch
                Arrays.sort(keysPropHashDisks);
1982 14 kreverch
                String[] keysPropHashZraid = (String[]) zfs.getHashZRaid().keySet().toArray(new String[0]);
1983 14 kreverch
                Arrays.sort(keysPropHashZraid);
1984 14 kreverch
                //Arrays.sort(keysPropHashZraid);
1985 14 kreverch
                for (int cptZraid=0;cptZraid<zfs.getHashZRaid().size();cptZraid++){
1986 14 kreverch
1987 14 kreverch
                        String keyPropHashZraid = keysPropHashZraid[cptZraid];
1988 14 kreverch
                        GridData gridDataLabelZraid = new GridData(GridData.FILL, GridData.CENTER, true, false);
1989 14 kreverch
                        gridDataLabelZraid.horizontalSpan=6;
1990 14 kreverch
                        if (zfs.getZpool().zProperties.get("name").getValue().equalsIgnoreCase(zfs.getHashZRaid().get(keyPropHashZraid).zProperties.get("poolname").getValue())){
1991 14 kreverch
                                //                        lbl.setText(zfs.getHashZRaid().get(keyPropHashZraid).zProperties.get("name").getValue()+" "+zfs.getHashZRaid().get(keyPropHashZraid).zProperties.get("raidid").getValue()+zfs.getHashZRaid().get(keyPropHashZraid).zProperties.get("raidtype").getValue());
1992 14 kreverch
                                if ( !"".equals(zfs.getHashZRaid().get(keyPropHashZraid).zProperties.get("raidid").getValue())){
1993 14 kreverch
                                        String labelTextZraid="Pool : "+zfs.getHashZRaid().get(keyPropHashZraid).zProperties.get("poolname").getValue()+" - "+"Type : "+zfs.getHashZRaid().get(keyPropHashZraid).zProperties.get("raidtype").getValue()+ " ID : "+zfs.getHashZRaid().get(keyPropHashZraid).zProperties.get("raidid").getValue();
1994 14 kreverch
                                        labelsFieldZRaid.add(new Label(compositeWidgetDisks, SWT.BORDER|SWT.CENTER));
1995 14 kreverch
                                        labelsFieldZRaid.get(labelsFieldZRaid.size()-1).setLayoutData(gridDataLabelZraid);
1996 14 kreverch
                                        labelsFieldZRaid.get(labelsFieldZRaid.size()-1).setFont(fontSubTitle);
1997 14 kreverch
                                        labelsFieldZRaid.get(labelsFieldZRaid.size()-1).setBackground(labelFieldBackgroundColor);
1998 14 kreverch
                                        labelsFieldZRaid.get(labelsFieldZRaid.size()-1).setText(labelTextZraid);
1999 14 kreverch
                                        labelsFieldZRaid.get(labelsFieldZRaid.size()-1).setData(labelTextZraid);
2000 14 kreverch
                                }
2001 14 kreverch
2002 14 kreverch
2003 14 kreverch
                                for (int cpt=0;cpt<keysPropHashDisks.length;cpt++){
2004 14 kreverch
                                        //log.debug("RefreshDisks "+keysPropHashDisks[cpt] );
2005 14 kreverch
                                        String keyPropHashDisks = keysPropHashDisks[cpt];
2006 14 kreverch
                                        if (zfs.getHashDisks().get(keyPropHashDisks).zProperties.get("poolname").getValue().equalsIgnoreCase(zfs.getZpool().zProperties.get("name").getValue())&& zfs.getHashZRaid().get(keyPropHashZraid).zProperties.get("raidid").getValue().equalsIgnoreCase(zfs.getHashDisks().get(keyPropHashDisks).zProperties.get("raidid").getValue())){
2007 14 kreverch
2008 14 kreverch
                                                labelsFieldDisks.add(new Label(compositeWidgetDisks, SWT.NONE));
2009 14 kreverch
                                                labelsFieldDisks.get(labelsFieldDisks.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
2010 14 kreverch
                                                labelsFieldDisks.get(labelsFieldDisks.size()-1).setFont(fontWidget);
2011 14 kreverch
                                                labelsFieldDisks.get(labelsFieldDisks.size()-1).setBackground(labelFieldBackgroundColor);
2012 14 kreverch
2013 14 kreverch
                                                if (!"0".equalsIgnoreCase(zfs.getHashDisks().get(keyPropHashDisks).zProperties.get("errorread").getValue()) ||
2014 14 kreverch
                                                                !"0".equalsIgnoreCase(zfs.getHashDisks().get(keyPropHashDisks).zProperties.get("errorwrite").getValue()) ||
2015 14 kreverch
                                                                !"0".equalsIgnoreCase(zfs.getHashDisks().get(keyPropHashDisks).zProperties.get("errorchecksum").getValue())||
2016 14 kreverch
                                                                (!"".equalsIgnoreCase(zfs.getHashDisks().get(keyPropHashDisks).zProperties.get("smarthealthstatus").getValue()) &&
2017 14 kreverch
                                                                                !"OK".equalsIgnoreCase(zfs.getHashDisks().get(keyPropHashDisks).zProperties.get("smarthealthstatus").getValue()))
2018 14 kreverch
                                                                ){
2019 14 kreverch
                                                        labelsFieldDisks.get(labelsFieldDisks.size()-1).setImage(imageHardDiskOffline);
2020 14 kreverch
                                                }else{
2021 14 kreverch
                                                        labelsFieldDisks.get(labelsFieldDisks.size()-1).setImage(imageHardDiskOnline);
2022 14 kreverch
                                                }
2023 14 kreverch
2024 14 kreverch
                                                //labelsFieldZRaid.get(labelsFieldZRaid.size()-1).setData(labelTextZraid);
2025 14 kreverch
                                                String[] keysProp = (String[]) zfs.getHashDisks().get(keyPropHashDisks).zProperties.keySet().toArray(new String[0]);
2026 14 kreverch
                                                Arrays.sort(keysProp);
2027 14 kreverch
                                                String valueProp="";
2028 14 kreverch
2029 14 kreverch
                                                for (int i = 0; i < keysProp.length; i++) {
2030 14 kreverch
                                                        keyProp = keysProp[i];
2031 14 kreverch
                                                        if ( "noupdateable".equalsIgnoreCase(zfs.getHashDisks().get(keyPropHashDisks).zProperties.get(keyProp).getType()) ){
2032 14 kreverch
                                                                valueProp = valueProp+zfs.getHashDisks().get(keyPropHashDisks).zProperties.get(keyProp).getLabelProperty()+" :"+zfs.getHashDisks().get(keyPropHashDisks).zProperties.get(keyProp).getValue()+"\n";
2033 14 kreverch
                                                        }
2034 14 kreverch
                                                }
2035 14 kreverch
                                                labelsFieldDisks.get(labelsFieldDisks.size()-1).setToolTipText(valueProp);
2036 14 kreverch
                                                //log.debug(valueProp);
2037 14 kreverch
                                        }
2038 14 kreverch
2039 14 kreverch
                                }
2040 14 kreverch
                        }
2041 14 kreverch
2042 14 kreverch
                }
2043 14 kreverch
                scrolledDisks.setContent(compositeWidgetDisks);
2044 14 kreverch
                scrolledDisks.setExpandVertical(true);
2045 14 kreverch
                scrolledDisks.setExpandHorizontal(true);
2046 14 kreverch
                scrolledDisks.setMinSize(compositeWidgetDisks.computeSize(SWT.DEFAULT,SWT.DEFAULT));
2047 14 kreverch
2048 14 kreverch
                scrolledDisks.layout();
2049 14 kreverch
                groupDisks.layout();
2050 14 kreverch
                compositeWidgetDisks.layout();
2051 14 kreverch
                compositeDisks.layout();
2052 14 kreverch
                tabFolderConfig.layout();
2053 14 kreverch
2054 14 kreverch
        }
2055 14 kreverch
2056 14 kreverch
2057 14 kreverch
        private void  refreshCreateZfsVolFS(){
2058 14 kreverch
2059 14 kreverch
                String[] keysProp = (String[]) zfs.getZvol().zProperties.keySet().toArray(new String[0]);
2060 14 kreverch
                Arrays.sort(keysProp);
2061 14 kreverch
                log.debug("Label SIze "+labelsFieldCreateVol.size());
2062 14 kreverch
                for ( int cptL=0;cptL<labelsFieldCreateVol.size();cptL++){
2063 14 kreverch
                        labelsFieldCreateVol.get(cptL).dispose();
2064 14 kreverch
2065 14 kreverch
                }
2066 14 kreverch
                for ( int cptL=0;cptL<textsFieldCreateVol.size();cptL++){
2067 14 kreverch
                        textsFieldCreateVol.get(cptL).dispose();
2068 14 kreverch
                }
2069 14 kreverch
                for ( int cptL=0;cptL<combosFieldCreateVol.size();cptL++){
2070 14 kreverch
                        combosFieldCreateVol.get(cptL).dispose();
2071 14 kreverch
                }
2072 14 kreverch
                labelsFieldCreateVol.clear();
2073 14 kreverch
                textsFieldCreateVol.clear();
2074 14 kreverch
                combosFieldCreateVol.clear();
2075 14 kreverch
                if (btnCreateZfsVolFS!=null && !btnCreateZfsVolFS.isDisposed()){
2076 14 kreverch
                        btnCreateZfsVolFS.dispose();
2077 14 kreverch
                }
2078 14 kreverch
                if (groupCreateVolFS !=null && !groupCreateVolFS.isDisposed()){
2079 14 kreverch
                        groupCreateVolFS.dispose();
2080 14 kreverch
                }
2081 14 kreverch
                if (scrolledCreateVol !=null &&!scrolledCreateVol.isDisposed()){
2082 14 kreverch
                        scrolledCreateVol.dispose();
2083 14 kreverch
                }
2084 14 kreverch
                if (compositeWidgetCreateVolFS!=null && !compositeWidgetCreateVolFS.isDisposed()){
2085 14 kreverch
                        compositeWidgetCreateVolFS.dispose();
2086 14 kreverch
                }
2087 14 kreverch
2088 14 kreverch
2089 14 kreverch
2090 14 kreverch
2091 14 kreverch
                groupCreateVolFS=new Group(compositeCreateVolFS,SWT.NONE);
2092 14 kreverch
                groupCreateVolFS.setBackground(groupBackgroundColor);
2093 14 kreverch
                groupCreateVolFS.setLayout(new GridLayout());
2094 14 kreverch
                //GridData gridData=new GridData(GridData.FILL_HORIZONTAL);
2095 14 kreverch
                GridData gridData=new GridData(SWT.FILL, SWT.FILL, true, true);
2096 14 kreverch
                //gridData.heightHint=450;
2097 14 kreverch
                groupCreateVolFS.setLayoutData(gridData);
2098 14 kreverch
                scrolledCreateVol=new ScrolledComposite(groupCreateVolFS,SWT.V_SCROLL);
2099 14 kreverch
                scrolledCreateVol.setLayoutData(new GridData(GridData.FILL_BOTH));
2100 14 kreverch
                compositeWidgetCreateVolFS=new Composite(scrolledCreateVol,SWT.NONE);
2101 14 kreverch
                compositeWidgetCreateVolFS.setBackground(compositeBackgroundColor);
2102 14 kreverch
                GridLayout gridLayoutPane = new GridLayout();
2103 14 kreverch
                gridLayoutPane.numColumns =2;
2104 14 kreverch
                compositeWidgetCreateVolFS.setLayout(gridLayoutPane);
2105 14 kreverch
2106 14 kreverch
                GridData gridDataTitle = new GridData(GridData.FILL, GridData.CENTER, true, false);
2107 14 kreverch
                gridDataTitle.horizontalSpan = 2;
2108 14 kreverch
                Label lblTitle = new Label(compositeWidgetCreateVolFS, SWT.CENTER|SWT.BORDER);
2109 14 kreverch
                lblTitle.setLayoutData(gridDataTitle);
2110 14 kreverch
                lblTitle.setFont(fontTitle);
2111 14 kreverch
                lblTitle.setBackground(labelTitleBackgroundColor);
2112 14 kreverch
                lblTitle.setText("Create a ZFS Volume or ZFS FileSystem");
2113 14 kreverch
2114 14 kreverch
2115 14 kreverch
2116 14 kreverch
                labelsFieldCreateVol.add(new Label(compositeWidgetCreateVolFS, SWT.NONE));
2117 14 kreverch
                labelsFieldCreateVol.get(labelsFieldCreateVol.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
2118 14 kreverch
                labelsFieldCreateVol.get(labelsFieldCreateVol.size()-1).setBackground(labelFieldBackgroundColor);
2119 14 kreverch
                labelsFieldCreateVol.get(labelsFieldCreateVol.size()-1).setText(zfs.getZvol().zProperties.get("type").getLabelProperty());
2120 14 kreverch
                labelsFieldCreateVol.get(labelsFieldCreateVol.size()-1).setData(zfs.getZvol().zProperties.get("type").getNameProperty());
2121 14 kreverch
2122 14 kreverch
                combosFieldCreateVol.add(new Combo(compositeWidgetCreateVolFS, SWT.NONE));
2123 14 kreverch
                combosFieldCreateVol.get(combosFieldCreateVol.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
2124 14 kreverch
                combosFieldCreateVol.get(combosFieldCreateVol.size()-1).setData(zfs.getZvol().zProperties.get("type").getNameProperty());
2125 14 kreverch
                String[] keysPermitValue = (String[]) zfs.getZvol().zProperties.get("type").getPermitValue().keySet().toArray(new String[0]);
2126 14 kreverch
                for (int cpt=0;cpt <zfs.getZvol().zProperties.get("type").getPermitValue().size();cpt++){
2127 14 kreverch
                        String keyPermitValue = keysPermitValue[cpt];
2128 14 kreverch
                        combosFieldCreateVol.get(combosFieldCreateVol.size()-1).add(zfs.getZvol().zProperties.get("type").getPermitValue().get(keyPermitValue).toString());
2129 14 kreverch
                }
2130 14 kreverch
2131 14 kreverch
                combosFieldCreateVol.get(combosFieldCreateVol.size()-1).setText(zfs.getZvol().zProperties.get("type").getValue());
2132 14 kreverch
                //zfs.getZvol().zProperties.get("type").setValue(zfs.getZvol().zProperties.get("type").getPermitValue().get("volume").toString());
2133 14 kreverch
                combosFieldCreateVol.get(combosFieldCreateVol.size()-1).addListener(SWT.Selection, new Listener() {
2134 14 kreverch
2135 14 kreverch
                        public void handleEvent(final Event event) {
2136 14 kreverch
                                final Combo comboType = (Combo) event.widget;
2137 14 kreverch
2138 14 kreverch
2139 14 kreverch
                                zfs.getZvol().zProperties.get("type").setValue(comboType.getText());
2140 14 kreverch
                                refreshCreateZfsVolFS();
2141 14 kreverch
                                compositeWidgetCreateVolFS.layout();
2142 14 kreverch
                                compositeCreateVolFS.layout();
2143 14 kreverch
2144 14 kreverch
                                log.debug(combosFieldCreateVol.size());
2145 14 kreverch
                        }
2146 14 kreverch
                });
2147 14 kreverch
2148 14 kreverch
                labelsFieldCreateVol.add(new Label(compositeWidgetCreateVolFS, SWT.NONE));
2149 14 kreverch
                labelsFieldCreateVol.get(labelsFieldCreateVol.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
2150 14 kreverch
                labelsFieldCreateVol.get(labelsFieldCreateVol.size()-1).setBackground(labelFieldBackgroundColor);
2151 14 kreverch
                labelsFieldCreateVol.get(labelsFieldCreateVol.size()-1).setText(zfs.getZvol().zProperties.get("name").getLabelProperty());
2152 14 kreverch
                labelsFieldCreateVol.get(labelsFieldCreateVol.size()-1).setData(zfs.getZvol().zProperties.get("name").getNameProperty());
2153 14 kreverch
2154 14 kreverch
                textsFieldCreateVol.add(new Text(compositeWidgetCreateVolFS, SWT.WRAP|SWT.BORDER));
2155 14 kreverch
                textsFieldCreateVol.get(textsFieldCreateVol.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
2156 14 kreverch
                textsFieldCreateVol.get(textsFieldCreateVol.size()-1).setData(zfs.getZvol().zProperties.get("name").getNameProperty());
2157 14 kreverch
                textsFieldCreateVol.get(textsFieldCreateVol.size()-1).setText("");
2158 14 kreverch
2159 14 kreverch
                for (int i = 0; i < keysProp.length; i++) {
2160 14 kreverch
                        keyProp = keysProp[i];
2161 14 kreverch
                        log.debug(keyProp);
2162 14 kreverch
                        if ( ("volume".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue()) &&
2163 14 kreverch
                                        ("volume".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getPropertyOf()) ||
2164 14 kreverch
                                                        "volandfs".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getPropertyOf())) ) ||
2165 14 kreverch
                                                        ("filesystem".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue()) &&
2166 14 kreverch
                                                                        ("fs".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getPropertyOf()) ||
2167 14 kreverch
                                                                                        "volandfs".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getPropertyOf()) ) )
2168 14 kreverch
                                                                                        || ("snapshot".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue()) && "volandfs".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getPropertyOf()))
2169 14 kreverch
2170 14 kreverch
                                        ){
2171 14 kreverch
                                log.debug("DEBUG : "+ keyProp+ " "+zfs.getZvol().zProperties.get(keyProp).getType());
2172 14 kreverch
                                if ( "freeentry".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getType()) ||keyProp =="volblocksize"){
2173 14 kreverch
                                        labelsFieldCreateVol.add(new Label(compositeWidgetCreateVolFS, SWT.NONE));
2174 14 kreverch
                                        labelsFieldCreateVol.get(labelsFieldCreateVol.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
2175 14 kreverch
                                        labelsFieldCreateVol.get(labelsFieldCreateVol.size()-1).setBackground(labelFieldBackgroundColor);
2176 14 kreverch
                                        labelsFieldCreateVol.get(labelsFieldCreateVol.size()-1).setText(zfs.getZvol().zProperties.get(keyProp).getLabelProperty());
2177 14 kreverch
                                        labelsFieldCreateVol.get(labelsFieldCreateVol.size()-1).setData(zfs.getZvol().zProperties.get(keyProp).getNameProperty());
2178 14 kreverch
2179 14 kreverch
                                        textsFieldCreateVol.add(new Text(compositeWidgetCreateVolFS, SWT.WRAP|SWT.BORDER));
2180 14 kreverch
                                        textsFieldCreateVol.get(textsFieldCreateVol.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
2181 14 kreverch
                                        textsFieldCreateVol.get(textsFieldCreateVol.size()-1).setText(zfs.getZvol().zProperties.get(keyProp).getValue());
2182 14 kreverch
                                        textsFieldCreateVol.get(textsFieldCreateVol.size()-1).setData(zfs.getZvol().zProperties.get(keyProp).getNameProperty());
2183 14 kreverch
2184 14 kreverch
                                }else{
2185 14 kreverch
2186 14 kreverch
                                        if ( "nofreeentry".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getType()) && !"type".equals(keyProp)){
2187 14 kreverch
                                                labelsFieldCreateVol.add(new Label(compositeWidgetCreateVolFS, SWT.NONE));
2188 14 kreverch
                                                labelsFieldCreateVol.get(labelsFieldCreateVol.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
2189 14 kreverch
                                                labelsFieldCreateVol.get(labelsFieldCreateVol.size()-1).setBackground(labelFieldBackgroundColor);
2190 14 kreverch
                                                labelsFieldCreateVol.get(labelsFieldCreateVol.size()-1).setText(zfs.getZvol().zProperties.get(keyProp).getLabelProperty());
2191 14 kreverch
                                                labelsFieldCreateVol.get(labelsFieldCreateVol.size()-1).setData(zfs.getZvol().zProperties.get(keyProp).getNameProperty());
2192 14 kreverch
2193 14 kreverch
                                                combosFieldCreateVol.add(new Combo(compositeWidgetCreateVolFS, SWT.NONE));
2194 14 kreverch
                                                combosFieldCreateVol.get(combosFieldCreateVol.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
2195 14 kreverch
                                                combosFieldCreateVol.get(combosFieldCreateVol.size()-1).setData(zfs.getZvol().zProperties.get(keyProp).getNameProperty());
2196 14 kreverch
                                                combosFieldCreateVol.get(combosFieldCreateVol.size()-1).setText(zfs.getZvol().zProperties.get(keyProp).getValue());
2197 14 kreverch
                                                keysPermitValue = (String[]) zfs.getZvol().zProperties.get(keyProp).getPermitValue().keySet().toArray(new String[0]);
2198 14 kreverch
                                                for (int cpt=0;cpt <zfs.getZvol().zProperties.get(keyProp).getPermitValue().size();cpt++){
2199 14 kreverch
                                                        String keyPermitValue = keysPermitValue[cpt];
2200 14 kreverch
                                                        combosFieldCreateVol.get(combosFieldCreateVol.size()-1).add(zfs.getZvol().zProperties.get(keyProp).getPermitValue().get(keyPermitValue).toString());
2201 14 kreverch
                                                }
2202 14 kreverch
                                        }
2203 14 kreverch
2204 14 kreverch
                                }
2205 14 kreverch
2206 14 kreverch
                        }
2207 14 kreverch
2208 14 kreverch
                }
2209 14 kreverch
2210 14 kreverch
2211 14 kreverch
                scrolledCreateVol.setContent(compositeWidgetCreateVolFS);
2212 14 kreverch
                scrolledCreateVol.setExpandVertical(true);
2213 14 kreverch
                scrolledCreateVol.setExpandHorizontal(true);
2214 14 kreverch
                scrolledCreateVol.setMinSize(compositeWidgetCreateVolFS.computeSize(SWT.DEFAULT,SWT.DEFAULT));
2215 14 kreverch
2216 14 kreverch
2217 14 kreverch
                if (groupActiveIscsi!=null && !groupActiveIscsi.isDisposed() ){
2218 14 kreverch
                        groupActiveIscsi.dispose();
2219 14 kreverch
                }
2220 14 kreverch
                if  ("volume".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue())){
2221 14 kreverch
                        groupActiveIscsi=new Group(compositeCreateVolFS,SWT.NONE);
2222 14 kreverch
                        groupActiveIscsi.setBackground(groupBackgroundColor);
2223 14 kreverch
                        groupActiveIscsi.setLayout(new GridLayout());
2224 14 kreverch
                        GridLayout gridLayoutActiveIscsi = new GridLayout();
2225 14 kreverch
                        gridLayoutActiveIscsi.numColumns =2;
2226 14 kreverch
                        groupActiveIscsi.setLayout(gridLayoutActiveIscsi);
2227 14 kreverch
                        //GridData gridDataActiveIscsi=new GridData(GridData.FILL_HORIZONTAL);
2228 14 kreverch
                        GridData gridDataActiveIscsi=new GridData(SWT.FILL, SWT.FILL, true, true);
2229 14 kreverch
                        //gridDataActiveIscsi.heightHint=200;
2230 14 kreverch
                        groupActiveIscsi.setLayoutData(gridDataActiveIscsi);
2231 14 kreverch
2232 14 kreverch
                        GridData gridDataTitleIscsi = new GridData(GridData.FILL, GridData.CENTER, true, false);
2233 14 kreverch
                        gridDataTitleIscsi.horizontalSpan = 2;
2234 14 kreverch
                        //Iscsi Section
2235 14 kreverch
                        Label lblTitleIscsi = new Label(groupActiveIscsi, SWT.CENTER|SWT.BORDER);
2236 14 kreverch
                        lblTitleIscsi.setLayoutData(gridDataTitleIscsi);
2237 14 kreverch
                        lblTitleIscsi.setFont(fontTitle);
2238 14 kreverch
                        lblTitleIscsi.setBackground(labelTitleBackgroundColor);
2239 14 kreverch
                        lblTitleIscsi.setText("ISCSI Parameters");
2240 14 kreverch
                        keysProp = (String[]) zfs.getZiscsi().zProperties.keySet().toArray(new String[0]);
2241 14 kreverch
                        Arrays.sort(keysProp);
2242 14 kreverch
                        labelsFieldCreateIscsi.clear();
2243 14 kreverch
                        textsFieldCreateIscsi.clear();
2244 14 kreverch
                        combosFieldCreateIscsi.clear();
2245 14 kreverch
                        for (int i = 0; i < keysProp.length; i++) {
2246 14 kreverch
                                keyProp = keysProp[i];
2247 14 kreverch
2248 14 kreverch
2249 14 kreverch
                                if ( "noupdateable".equalsIgnoreCase(zfs.getZiscsi().zProperties.get(keyProp).getType())) {
2250 14 kreverch
                                        Label lbl = new Label(groupActiveIscsi, SWT.NONE);
2251 14 kreverch
                                        lbl.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
2252 14 kreverch
                                        lbl.setText(zfs.getZiscsi().zProperties.get(keyProp).getLabelProperty());
2253 14 kreverch
                                        lbl.setFont(fontWidget);
2254 14 kreverch
                                        lbl.setBackground(labelFieldBackgroundColor);
2255 14 kreverch
                                        labelsFieldCreateIscsi.add(new Label(groupActiveIscsi, SWT.NONE));
2256 14 kreverch
                                        labelsFieldCreateIscsi.get(labelsFieldCreateIscsi.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
2257 14 kreverch
                                        labelsFieldCreateIscsi.get(labelsFieldCreateIscsi.size()-1).setBackground(labelFieldBackgroundColor);
2258 14 kreverch
                                        //labelsField.get(labelsField.size()-1).setText(zfs.getZiscsi().zProperties.get(keyProp).getNameProperty());
2259 14 kreverch
                                        labelsFieldCreateIscsi.get(labelsFieldCreateIscsi.size()-1).setData(zfs.getZiscsi().zProperties.get(keyProp).getNameProperty());
2260 14 kreverch
                                }else{
2261 14 kreverch
                                        if ( "freeentry".equalsIgnoreCase(zfs.getZiscsi().zProperties.get(keyProp).getType())){
2262 14 kreverch
                                                Label lbl = new Label(groupActiveIscsi, SWT.NONE);
2263 14 kreverch
                                                lbl.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
2264 14 kreverch
                                                lbl.setText(zfs.getZiscsi().zProperties.get(keyProp).getLabelProperty());
2265 14 kreverch
                                                lbl.setFont(fontWidget);
2266 14 kreverch
                                                lbl.setBackground(labelFieldBackgroundColor);
2267 14 kreverch
2268 14 kreverch
                                                textsFieldCreateIscsi.add(new Text(groupActiveIscsi, SWT.WRAP|SWT.BORDER));
2269 14 kreverch
                                                textsFieldCreateIscsi.get(textsFieldCreateIscsi.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
2270 14 kreverch
                                                textsFieldCreateIscsi.get(textsFieldCreateIscsi.size()-1).setBackground(textFieldBackgroundColor);
2271 14 kreverch
                                                //textsField.get(textsField.size()-1).setText(zfs.getZiscsi().zProperties.get(keyProp).getNameProperty());
2272 14 kreverch
                                                textsFieldCreateIscsi.get(textsFieldCreateIscsi.size()-1).setData(zfs.getZiscsi().zProperties.get(keyProp).getNameProperty());
2273 14 kreverch
2274 14 kreverch
                                        }else{
2275 14 kreverch
2276 14 kreverch
                                                if ( "nofreeentry".equalsIgnoreCase(zfs.getZiscsi().zProperties.get(keyProp).getType())){
2277 14 kreverch
                                                        Label lbl = new Label(groupActiveIscsi, SWT.NONE);
2278 14 kreverch
                                                        lbl.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
2279 14 kreverch
                                                        lbl.setText(zfs.getZiscsi().zProperties.get(keyProp).getLabelProperty());
2280 14 kreverch
                                                        lbl.setFont(fontWidget);
2281 14 kreverch
                                                        lbl.setBackground(labelFieldBackgroundColor);
2282 14 kreverch
2283 14 kreverch
                                                        combosFieldCreateIscsi.add(new Combo(groupActiveIscsi, SWT.NONE));
2284 14 kreverch
                                                        combosFieldCreateIscsi.get(combosFieldCreateIscsi.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
2285 14 kreverch
                                                        combosFieldCreateIscsi.get(combosFieldCreateIscsi.size()-1).setData(zfs.getZiscsi().zProperties.get(keyProp).getNameProperty());
2286 14 kreverch
                                                        //combosField.get(combosField.size()-1).setText(zfs.getZiscsi().zProperties.get(keyProp).getValue());
2287 14 kreverch
                                                        keysPermitValue = (String[]) zfs.getZiscsi().zProperties.get(keyProp).getPermitValue().keySet().toArray(new String[0]);
2288 14 kreverch
                                                        for (int cpt=0;cpt <zfs.getZiscsi().zProperties.get(keyProp).getPermitValue().size();cpt++){
2289 14 kreverch
                                                                String keyPermitValue = keysPermitValue[cpt];
2290 14 kreverch
                                                                combosFieldCreateIscsi.get(combosFieldCreateIscsi.size()-1).add(zfs.getZiscsi().zProperties.get(keyProp).getPermitValue().get(keyPermitValue).toString());
2291 14 kreverch
                                                        }
2292 14 kreverch
                                                }
2293 14 kreverch
                                        }
2294 14 kreverch
2295 14 kreverch
                                }
2296 14 kreverch
                                log.debug("DEBUG : "+ keyProp+ " "+zfs.getZiscsi().zProperties.get(keyProp).getType());
2297 14 kreverch
2298 14 kreverch
                        }
2299 14 kreverch
2300 14 kreverch
                }
2301 14 kreverch
                btnCreateZfsVolFS = new Button(compositeCreateVolFS, SWT.None);
2302 14 kreverch
                GridData gridDataBtnCreateZfsVolFS = new GridData(GridData.FILL, GridData.CENTER, true, false);
2303 14 kreverch
                gridDataBtnCreateZfsVolFS.horizontalSpan = 2;
2304 14 kreverch
                btnCreateZfsVolFS.setLayoutData(gridDataBtnCreateZfsVolFS);
2305 14 kreverch
                btnCreateZfsVolFS.setText("Create Now");
2306 14 kreverch
                btnCreateZfsVolFS.addListener(SWT.Selection, new Listener() {
2307 14 kreverch
2308 14 kreverch
                        public void handleEvent(final Event event) {
2309 14 kreverch
2310 14 kreverch
                                for (int indText=0;indText<textsFieldCreateVol.size();indText++){
2311 14 kreverch
                                        if (textsFieldCreateVol.get(indText).getData().toString().equals("name")){
2312 14 kreverch
                                                zfs.getZvol().zProperties.get("name").setValue(textsFieldCreateVol.get(indText).getText());
2313 14 kreverch
                                        }
2314 14 kreverch
                                }
2315 14 kreverch
                                if (! zfs.getZvol().zProperties.get("name").getValue().equalsIgnoreCase("") ){
2316 14 kreverch
                                        String[] keysProp = (String[]) zfs.getZvol().zProperties.keySet().toArray(new String[0]);
2317 14 kreverch
                                        Arrays.sort(keysProp);
2318 14 kreverch
                                        for (int i = 0; i < keysProp.length; i++) {
2319 14 kreverch
                                                keyProp = keysProp[i];
2320 14 kreverch
                                                log.debug(keyProp);
2321 14 kreverch
                                                if ( ("volume".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue()) &&
2322 14 kreverch
                                                                ("volume".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getPropertyOf()) ||
2323 14 kreverch
                                                                                "volandfs".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getPropertyOf())) ) ||
2324 14 kreverch
                                                                                ("filesystem".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue()) &&
2325 14 kreverch
                                                                                                ("fs".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getPropertyOf()) ||
2326 14 kreverch
                                                                                                                "volandfs".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getPropertyOf()) ) )
2327 14 kreverch
                                                                                                                || ("snapshot".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue()) && "volandfs".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getPropertyOf()))
2328 14 kreverch
2329 14 kreverch
                                                                ){
2330 14 kreverch
                                                        log.debug("DEBUG : "+ keyProp+ " "+zfs.getZvol().zProperties.get(keyProp).getType());
2331 14 kreverch
                                                        if ( "freeentry".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getType()) ||keyProp =="volblocksize"){
2332 14 kreverch
                                                                for (int indText=0;indText<textsFieldCreateVol.size();indText++){
2333 14 kreverch
                                                                        if ( textsFieldCreateVol.get(indText).getData().equals(keyProp) ){
2334 14 kreverch
                                                                                zfs.getZvol().zProperties.get(keyProp).setValue(textsFieldCreateVol.get(indText).getText());
2335 14 kreverch
                                                                        }
2336 14 kreverch
                                                                }
2337 14 kreverch
                                                        }else{
2338 14 kreverch
2339 14 kreverch
                                                                if ( "nofreeentry".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getType()) && !"type".equals(keyProp)){
2340 14 kreverch
                                                                        for (int indCombo=0;indCombo<combosFieldCreateVol.size();indCombo++){
2341 14 kreverch
                                                                                if ( combosFieldCreateVol.get(indCombo).getData().equals(keyProp) ){
2342 14 kreverch
                                                                                        zfs.getZvol().zProperties.get(keyProp).setValue(combosFieldCreateVol.get(indCombo).getText());
2343 14 kreverch
                                                                                }
2344 14 kreverch
                                                                        }
2345 14 kreverch
                                                                }
2346 14 kreverch
                                                        }
2347 14 kreverch
                                                }
2348 14 kreverch
                                        }
2349 14 kreverch
2350 14 kreverch
                                        thrCreateZFSVol = new Thread(new Runnable(){
2351 14 kreverch
                                                public void run() {
2352 14 kreverch
                                                        Display.getDefault().syncExec(new Runnable() {
2353 14 kreverch
                                                                public void run() {
2354 14 kreverch
                                                                        if (wPB.s.isDisposed()){
2355 14 kreverch
                                                                                wPB = new guiProgress(shell.getDisplay(), shell.getLocation().x, shell.getLocation().y);
2356 14 kreverch
                                                                                wPB.open();
2357 14 kreverch
                                                                        }else{
2358 14 kreverch
                                                                                wPB.open();
2359 14 kreverch
                                                                        }
2360 14 kreverch
2361 14 kreverch
2362 14 kreverch
                                                                }
2363 14 kreverch
                                                        });
2364 14 kreverch
2365 14 kreverch
                                                        zfs.zfsCreateVolFS();
2366 14 kreverch
                                                        Display.getDefault().syncExec(new Runnable(){
2367 14 kreverch
                                                                public void run(){
2368 14 kreverch
                                                                        String[] keysPropError = zfs.getError().keySet().toArray(new String[0]);
2369 14 kreverch
                                                                        //String[] keysProp = (String[]) zfs.getZserver().zProperties.keySet().toArray(new String[0]);
2370 14 kreverch
                                                                        Arrays.sort(keysPropError);
2371 14 kreverch
                                                                        String textBox = "";
2372 14 kreverch
                                                                        for (int i = 0; i < keysPropError.length; i++) {
2373 14 kreverch
                                                                                String keyPropError = keysPropError[i];
2374 14 kreverch
                                                                                textBox = textBox +zfs.getError().get(keyPropError)+".\n";
2375 14 kreverch
                                                                        }
2376 14 kreverch
                                                                        if (keysPropError.length>0){
2377 14 kreverch
                                                                                MessageBox messageBoxInfo = new MessageBox(shell, SWT.DIALOG_TRIM);
2378 14 kreverch
                                                                                messageBoxInfo.setText("Warning");
2379 14 kreverch
                                                                                messageBoxInfo.setMessage(textBox);
2380 14 kreverch
                                                                                messageBoxInfo.open();
2381 14 kreverch
                                                                                wPB.close();
2382 14 kreverch
                                                                        }else{
2383 14 kreverch
                                                                                if ("volume".equals(zfs.getZvol().zProperties.get("type").getValue())||
2384 14 kreverch
                                                                                                "snapshot".equals(zfs.getZvol().zProperties.get("type").getValue())){
2385 14 kreverch
2386 14 kreverch
                                                                                        String[] keysProp = (String[]) zfs.getZiscsi().zProperties.keySet().toArray(new String[0]);
2387 14 kreverch
                                                                                        Arrays.sort(keysProp);
2388 14 kreverch
2389 14 kreverch
                                                                                        for (int i = 0; i < keysProp.length; i++) {
2390 14 kreverch
                                                                                                keyProp = keysProp[i];
2391 14 kreverch
                                                                                                log.debug("btnCreateIscsi :"+keyProp);
2392 14 kreverch
                                                                                                if ( "noupdateable".equalsIgnoreCase(zfs.getZiscsi().zProperties.get(keyProp).getType())) {
2393 14 kreverch
                                                                                                        for (int indLabel=0;indLabel<labelsFieldCreateIscsi.size();indLabel++){
2394 14 kreverch
                                                                                                                if ( labelsFieldCreateIscsi.get(indLabel).getData().equals(zfs.getZiscsi().zProperties.get(keyProp).getNameProperty()) ){
2395 14 kreverch
                                                                                                                        zfs.getZiscsi().zProperties.get(keyProp).setValue(labelsFieldCreateIscsi.get(indLabel).getText());
2396 14 kreverch
                                                                                                                }
2397 14 kreverch
                                                                                                        }
2398 14 kreverch
                                                                                                }else{
2399 14 kreverch
                                                                                                        if ( "freeentry".equalsIgnoreCase(zfs.getZiscsi().zProperties.get(keyProp).getType())) {
2400 14 kreverch
                                                                                                                for (int indText=0;indText<textsFieldCreateIscsi.size();indText++){
2401 14 kreverch
                                                                                                                        if ( textsFieldCreateIscsi.get(indText).getData().equals(zfs.getZiscsi().zProperties.get(keyProp).getNameProperty()) ){
2402 14 kreverch
                                                                                                                                zfs.getZiscsi().zProperties.get(keyProp).setValue(textsFieldCreateIscsi.get(indText).getText());
2403 14 kreverch
                                                                                                                        }
2404 14 kreverch
                                                                                                                }
2405 14 kreverch
2406 14 kreverch
                                                                                                        }else{
2407 14 kreverch
2408 14 kreverch
                                                                                                                if ( "nofreeentry".equalsIgnoreCase(zfs.getZiscsi().zProperties.get(keyProp).getType())) {
2409 14 kreverch
                                                                                                                        for (int indList=0;indList<combosFieldCreateIscsi.size();indList++){
2410 14 kreverch
                                                                                                                                log.debug("first loop"+combosFieldCreateIscsi.get(indList).getData()+" "+zfs.getZiscsi().zProperties.get(keyProp).getNameProperty());
2411 14 kreverch
2412 14 kreverch
                                                                                                                                if ( combosFieldCreateIscsi.get(indList).getData().equals(zfs.getZiscsi().zProperties.get(keyProp).getNameProperty()) ){
2413 14 kreverch
                                                                                                                                        zfs.getZiscsi().zProperties.get(keyProp).setValue(combosFieldCreateIscsi.get(indList).getText());
2414 14 kreverch
                                                                                                                                        log.debug(zfs.getZiscsi().zProperties.get(keyProp).getMultivalues());
2415 14 kreverch
                                                                                                                                }
2416 14 kreverch
                                                                                                                        }
2417 14 kreverch
                                                                                                                }
2418 14 kreverch
                                                                                                        }
2419 14 kreverch
                                                                                                }
2420 14 kreverch
                                                                                        }
2421 14 kreverch
                                                                                        if ("snapshot".equals(zfs.getZvol().zProperties.get("type").getValue())){
2422 14 kreverch
                                                                                                zfs.getZiscsi().zProperties.get("iomode").setValue("ro");
2423 14 kreverch
                                                                                        }
2424 14 kreverch
                                                                                        zfs.getZiscsi().zProperties.get("name").setValue(zfs.getZpool().zProperties.get("name").getValue()+"/"+zfs.getZvol().zProperties.get("name").getValue());
2425 14 kreverch
                                                                                        zfs.zfsCreateIscsi();
2426 14 kreverch
                                                                                        keysPropError = zfs.getError().keySet().toArray(new String[0]);
2427 14 kreverch
                                                                                        //String[] keysProp = (String[]) zfs.getZserver().zProperties.keySet().toArray(new String[0]);
2428 14 kreverch
                                                                                        Arrays.sort(keysPropError);
2429 14 kreverch
                                                                                        textBox = "";
2430 14 kreverch
                                                                                        for (int i = 0; i < keysPropError.length; i++) {
2431 14 kreverch
                                                                                                String keyPropError = keysPropError[i];
2432 14 kreverch
                                                                                                textBox = textBox +zfs.getError().get(keyPropError)+".\n";
2433 14 kreverch
                                                                                        }
2434 14 kreverch
                                                                                        if (keysPropError.length>0){
2435 14 kreverch
                                                                                                MessageBox messageBoxInfo = new MessageBox(shell, SWT.DIALOG_TRIM);
2436 14 kreverch
                                                                                                messageBoxInfo.setText("Warning");
2437 14 kreverch
                                                                                                messageBoxInfo.setMessage("ZFS Volume created but ISCSI Configuration is failed.\n"+textBox);
2438 14 kreverch
                                                                                                messageBoxInfo.open();
2439 14 kreverch
                                                                                                wPB.close();
2440 14 kreverch
                                                                                        }
2441 14 kreverch
                                                                                }
2442 14 kreverch
2443 14 kreverch
2444 14 kreverch
                                                                                int indRoot=0;
2445 14 kreverch
                                                                                int indItem=0;
2446 14 kreverch
                                                                                for (int indT=0;indT<tree.getItemCount();indT++){
2447 14 kreverch
                                                                                        if (tree.getItem(indT).getData().toString().equals(zfs.getZserver().zProperties.get("serverIP").getValue())){
2448 14 kreverch
                                                                                                for (int indTreeVolFS=0;indTreeVolFS<tree.getItem(indT).getItemCount();indTreeVolFS++){
2449 14 kreverch
                                                                                                        if (tree.getItem(indT).getItem(indTreeVolFS).getData().toString().compareTo(zfs.getZpool().zProperties.get("name").getValue()+"/"+zfs.getZvol().zProperties.get("name").getValue()) >0){
2450 14 kreverch
                                                                                                                if (zfs.getError().size()>0){
2451 14 kreverch
                                                                                                                        updateItemTreeZfsList(false, zfs.getZpool().zProperties.get("name").getValue()+"/"+zfs.getZvol().zProperties.get("name").getValue(), tree.getItem(indT), null ,indTreeVolFS);
2452 14 kreverch
                                                                                                                }else{
2453 14 kreverch
                                                                                                                        updateItemTreeZfsList(true, zfs.getZpool().zProperties.get("name").getValue()+"/"+zfs.getZvol().zProperties.get("name").getValue(), tree.getItem(indT), null ,indTreeVolFS);
2454 14 kreverch
                                                                                                                }
2455 14 kreverch
                                                                                                                indRoot=indT;
2456 14 kreverch
                                                                                                                indItem=indTreeVolFS;
2457 14 kreverch
                                                                                                                break;
2458 14 kreverch
                                                                                                        }
2459 14 kreverch
                                                                                                }
2460 14 kreverch
                                                                                                if ( indItem==0){
2461 14 kreverch
                                                                                                        int indTreeVolFS=tree.getItem(indT).getItemCount();
2462 14 kreverch
                                                                                                        if (zfs.getError().size()>0){
2463 14 kreverch
                                                                                                                updateItemTreeZfsList(false, zfs.getZpool().zProperties.get("name").getValue()+"/"+zfs.getZvol().zProperties.get("name").getValue(), tree.getItem(indT), null ,indTreeVolFS);
2464 14 kreverch
                                                                                                        }else{
2465 14 kreverch
                                                                                                                updateItemTreeZfsList(true, zfs.getZpool().zProperties.get("name").getValue()+"/"+zfs.getZvol().zProperties.get("name").getValue(), tree.getItem(indT), null ,indTreeVolFS);
2466 14 kreverch
                                                                                                        }
2467 14 kreverch
                                                                                                        indRoot=indT;
2468 14 kreverch
                                                                                                        indItem=indTreeVolFS;
2469 14 kreverch
                                                                                                }
2470 14 kreverch
                                                                                                tree.layout();
2471 14 kreverch
                                                                                        }
2472 14 kreverch
                                                                                }
2473 14 kreverch
2474 14 kreverch
                                                                                log.debug("Create Vol ISCI "+zfs.getZvol().zProperties.get("type").getValue());
2475 14 kreverch
                                                                                compositeTabVolConfig.layout();
2476 14 kreverch
                                                                                wPB.close();
2477 14 kreverch
2478 14 kreverch
                                                                                refreshCreateZfsVolFS();
2479 14 kreverch
                                                                        }
2480 14 kreverch
                                                                }
2481 14 kreverch
                                                        });
2482 14 kreverch
                                                }
2483 14 kreverch
                                        });
2484 14 kreverch
                                        thrCreateZFSVol.start();
2485 14 kreverch
                                }
2486 14 kreverch
                        }
2487 14 kreverch
                });
2488 14 kreverch
                compositeCreateVolFS.layout();
2489 14 kreverch
        }
2490 14 kreverch
2491 14 kreverch
        private void refreshIscsiSession(){
2492 14 kreverch
2493 14 kreverch
2494 14 kreverch
                zfs.getIscsiListConfigVol(zfs.getZvol().zProperties.get("name").getValue());
2495 14 kreverch
                log.debug("refreshIscsiSesiont : "+zfs.getZiscsi().zProperties.get("sid").getMultivalues().size());
2496 14 kreverch
2497 14 kreverch
2498 14 kreverch
2499 14 kreverch
                tableIscsiSession.removeAll();
2500 14 kreverch
                for (int i=0;i<zfs.getZiscsi().zProperties.get("sid").getMultivalues().size();i++){
2501 14 kreverch
                        TableItem item = new TableItem(tableIscsiSession, SWT.NONE);
2502 14 kreverch
                        item.setText(0, zfs.getZiscsi().zProperties.get("sid").getMultivalues().get(i).toString());
2503 14 kreverch
                        item.setText(1, zfs.getZiscsi().zProperties.get("sessionIP").getMultivalues().get(i).toString());
2504 14 kreverch
2505 14 kreverch
                }
2506 14 kreverch
                String[] keysProp = (String[]) zfs.getZiscsi().zProperties.keySet().toArray(new String[0]);
2507 14 kreverch
                Arrays.sort(keysProp);
2508 14 kreverch
2509 14 kreverch
                for (int i = 0; i < keysProp.length; i++) {
2510 14 kreverch
                        keyProp = keysProp[i];
2511 14 kreverch
                        if ( "noupdateable".equalsIgnoreCase(zfs.getZiscsi().zProperties.get(keyProp).getType())) {
2512 14 kreverch
                                for (int indLabel=0;indLabel<labelsFieldAddIscsi.size();indLabel++){
2513 14 kreverch
                                        if ( labelsFieldAddIscsi.get(indLabel).getData().equals(zfs.getZiscsi().zProperties.get(keyProp).getNameProperty()) ){
2514 14 kreverch
                                                labelsFieldAddIscsi.get(indLabel).setText(zfs.getZiscsi().zProperties.get(keyProp).getValue());
2515 14 kreverch
                                        }
2516 14 kreverch
                                }
2517 14 kreverch
                        }else{
2518 14 kreverch
                                if ( "freeentry".equalsIgnoreCase(zfs.getZiscsi().zProperties.get(keyProp).getType())) {
2519 14 kreverch
                                        for (int indText=0;indText<textsFieldAddIscsi.size();indText++){
2520 14 kreverch
                                                if ( textsFieldAddIscsi.get(indText).getData().equals(zfs.getZiscsi().zProperties.get(keyProp).getNameProperty()) ){
2521 14 kreverch
                                                        textsFieldAddIscsi.get(indText).setText(zfs.getZiscsi().zProperties.get(keyProp).getValue());
2522 14 kreverch
                                                }
2523 14 kreverch
                                        }
2524 14 kreverch
2525 14 kreverch
                                }else{
2526 14 kreverch
2527 14 kreverch
                                        if ( "nofreeentry".equalsIgnoreCase(zfs.getZiscsi().zProperties.get(keyProp).getType())) {
2528 14 kreverch
                                                for (int indCombo=0;indCombo<combosFieldAddIscsi.size();indCombo++){
2529 14 kreverch
                                                        if ( combosFieldAddIscsi.get(indCombo).getData().equals(zfs.getZiscsi().zProperties.get(keyProp).getNameProperty()) ){
2530 14 kreverch
                                                                combosFieldAddIscsi.get(indCombo).setText(zfs.getZiscsi().zProperties.get(keyProp).getValue());
2531 14 kreverch
                                                        }
2532 14 kreverch
                                                }
2533 14 kreverch
                                        }
2534 14 kreverch
                                }
2535 14 kreverch
                        }
2536 14 kreverch
                }
2537 14 kreverch
        }
2538 14 kreverch
2539 14 kreverch
        private void refreshConfigSnapshot(){
2540 14 kreverch
2541 14 kreverch
                zsnap = zfs;
2542 14 kreverch
                zsnap.getZsnapshotConfig();
2543 14 kreverch
                String[] keysProp = (String[]) zsnap.getZsnapshots().zSchedulerProperties.keySet().toArray(new String[0]);
2544 14 kreverch
                Arrays.sort(keysProp);
2545 14 kreverch
2546 14 kreverch
                for (int i = 0; i < keysProp.length; i++) {
2547 14 kreverch
                        keyProp = keysProp[i];
2548 14 kreverch
                        if ( "noupdateable".equalsIgnoreCase(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getType())) {
2549 14 kreverch
                                for (int indLabel=0;indLabel<labelsFieldSnapshots.size();indLabel++){
2550 14 kreverch
                                        if ( labelsFieldSnapshots.get(indLabel).getData().equals(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getNameProperty()) ){
2551 14 kreverch
                                                labelsFieldSnapshots.get(indLabel).setText(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getValue());
2552 14 kreverch
                                                log.debug("REFRESHConfig 1: ");
2553 14 kreverch
                                        }
2554 14 kreverch
                                }
2555 14 kreverch
                        }else{
2556 14 kreverch
                                if ( "freeentry".equalsIgnoreCase(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getType())) {
2557 14 kreverch
                                        for (int indText=0;indText<textsFieldSnapshots.size();indText++){
2558 14 kreverch
                                                if ( textsFieldSnapshots.get(indText).getData().equals(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getNameProperty()) ){
2559 14 kreverch
                                                        textsFieldSnapshots.get(indText).setText(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getValue());
2560 14 kreverch
                                                        log.debug("REFRESHConfig2 : ");
2561 14 kreverch
                                                }
2562 14 kreverch
                                        }
2563 14 kreverch
2564 14 kreverch
                                }else{
2565 14 kreverch
2566 14 kreverch
                                        if ( "nofreeentry".equalsIgnoreCase(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getType())) {
2567 14 kreverch
                                                for (int indCombo=0;indCombo<listsFieldSnaphots.size();indCombo++){
2568 14 kreverch
                                                        if ( listsFieldSnaphots.get(indCombo).getData().equals(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getNameProperty()) ){
2569 14 kreverch
                                                                //listsFieldSnaphots.get(indCombo).setText(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getValue());
2570 14 kreverch
                                                                labelsFieldSnapshotsValue.get(indCombo).setText("Current values : "+zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getValue());
2571 14 kreverch
                                                                log.debug("REFRESHConfig3 : "+zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getValue());
2572 14 kreverch
2573 14 kreverch
                                                        }
2574 14 kreverch
                                                }
2575 14 kreverch
                                        }
2576 14 kreverch
                                }
2577 14 kreverch
                        }
2578 14 kreverch
                }
2579 14 kreverch
        }
2580 14 kreverch
2581 14 kreverch
        private void refreshConfigReplica(){
2582 14 kreverch
2583 14 kreverch
                //zsnap = zfs;
2584 14 kreverch
                zfs.getZreplicaConfig();
2585 14 kreverch
                String[] keysProp = (String[]) zfs.getZreplicas().zSchedulerProperties.keySet().toArray(new String[0]);
2586 14 kreverch
                Arrays.sort(keysProp);
2587 14 kreverch
2588 14 kreverch
                for (int i = 0; i < keysProp.length; i++) {
2589 14 kreverch
                        keyProp = keysProp[i];
2590 14 kreverch
                        if ( "noupdateable".equalsIgnoreCase(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getType())) {
2591 14 kreverch
                                for (int indLabel=0;indLabel<labelsFieldReplica.size();indLabel++){
2592 14 kreverch
                                        if ( labelsFieldReplica.get(indLabel).getData().equals(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getNameProperty()) ){
2593 14 kreverch
                                                labelsFieldReplica.get(indLabel).setText(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getValue());
2594 14 kreverch
                                                log.debug("REFRESHConfig 1: ");
2595 14 kreverch
                                        }
2596 14 kreverch
                                }
2597 14 kreverch
                        }else{
2598 14 kreverch
                                if ( "freeentry".equalsIgnoreCase(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getType())) {
2599 14 kreverch
                                        for (int indText=0;indText<textsFieldReplica.size();indText++){
2600 14 kreverch
                                                if ( textsFieldReplica.get(indText).getData().equals(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getNameProperty()) ){
2601 14 kreverch
                                                        textsFieldReplica.get(indText).setText(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getValue());
2602 14 kreverch
                                                        log.debug("REFRESHConfig2 : ");
2603 14 kreverch
                                                }
2604 14 kreverch
                                        }
2605 14 kreverch
2606 14 kreverch
                                }else{
2607 14 kreverch
2608 14 kreverch
                                        if ( "nofreeentry".equalsIgnoreCase(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getType())&& zfs.getZreplicas().zSchedulerProperties.get(keyProp).getPermitValue() !=null) {
2609 14 kreverch
                                                for (int indCombo=0;indCombo<listsFieldReplica.size();indCombo++){
2610 14 kreverch
                                                        if ( listsFieldReplica.get(indCombo).getData().equals(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getNameProperty()) ){
2611 14 kreverch
                                                                //listsFieldSnaphots.get(indCombo).setText(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getValue());
2612 14 kreverch
                                                                labelsFieldReplicaValue.get(indCombo).setText("Current values : "+zfs.getZreplicas().zSchedulerProperties.get(keyProp).getValue());
2613 14 kreverch
                                                                log.debug("REFRESHConfig3 : "+zfs.getZreplicas().zSchedulerProperties.get(keyProp).getValue());
2614 14 kreverch
2615 14 kreverch
                                                        }
2616 14 kreverch
                                                }
2617 14 kreverch
                                        }
2618 14 kreverch
                                        if ( "nofreeentry".equalsIgnoreCase(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getType())&& zfs.getZreplicas().zSchedulerProperties.get(keyProp).getPermitValue() ==null) {
2619 14 kreverch
                                                for (int indCombo=0;indCombo<combosFieldReplica.size();indCombo++){
2620 14 kreverch
2621 14 kreverch
                                                        if (keyProp.equalsIgnoreCase("server")){
2622 14 kreverch
                                                                for (int indLabel=0;indLabel<labelsFieldReplica.size();indLabel++){
2623 14 kreverch
                                                                        if ( labelsFieldReplica.get(indLabel).getData().equals(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getNameProperty()) ){
2624 14 kreverch
                                                                                labelsFieldReplica.get(indLabel).setText(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getValue());
2625 14 kreverch
                                                                                log.debug("REFRESHConfig 1: ");
2626 14 kreverch
                                                                        }
2627 14 kreverch
                                                                }
2628 14 kreverch
2629 14 kreverch
                                                                if ( combosFieldReplica.get(indCombo).getData().equals(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getNameProperty()) ){
2630 14 kreverch
                                                                        combosFieldReplica.get(indCombo).removeAll();
2631 14 kreverch
                                                                        String[] keysPropSrv = (String[]) zfs.getCacheSession().keySet().toArray(new String[0]);
2632 14 kreverch
                                                                        Arrays.sort(keysPropSrv);
2633 14 kreverch
                                                                        for (int cptSrv=0;cptSrv<keysPropSrv.length;cptSrv++){
2634 14 kreverch
                                                                                String keyPropSrv=keysPropSrv[cptSrv];
2635 14 kreverch
                                                                                combosFieldReplica.get(indCombo).add(keyPropSrv);
2636 14 kreverch
                                                                        }
2637 14 kreverch
                                                                        //listsFieldSnaphots.get(indCombo).setText(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getValue());
2638 14 kreverch
                                                                        //combosFieldReplica.get(indCombo).setText("Current values : "+zfs.getZreplicas().zSchedulerProperties.get(keyProp).getValue());
2639 14 kreverch
                                                                        log.debug("REFRESHConfig3 : "+zfs.getZreplicas().zSchedulerProperties.get(keyProp).getValue());
2640 14 kreverch
                                                                        combosFieldReplica.get(indCombo).setText(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getValue());
2641 14 kreverch
                                                                }
2642 14 kreverch
                                                        }else{
2643 14 kreverch
                                                                if ( combosFieldReplica.get(indCombo).getData().equals(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getNameProperty()) ){
2644 14 kreverch
                                                                        combosFieldReplica.get(indCombo).setText(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getValue());
2645 14 kreverch
                                                                }
2646 14 kreverch
                                                        }
2647 14 kreverch
                                                }
2648 14 kreverch
2649 14 kreverch
                                        }
2650 14 kreverch
                                }
2651 14 kreverch
                        }
2652 14 kreverch
                }
2653 14 kreverch
        }
2654 14 kreverch
2655 14 kreverch
2656 14 kreverch
2657 14 kreverch
        private void refreshConfigVolume(){
2658 14 kreverch
2659 14 kreverch
                String[] keysProp = (String[]) zfs.getZvol().zProperties.keySet().toArray(new String[0]);
2660 14 kreverch
                Arrays.sort(keysProp);
2661 14 kreverch
2662 14 kreverch
                if ( "snapshot".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue())) {
2663 14 kreverch
                        for (int i=0;i<keysProp.length;i++){
2664 14 kreverch
                                keyProp = keysProp[i];
2665 14 kreverch
                                for (int indLabel=0;indLabel<labelsField.size();indLabel++){
2666 14 kreverch
                                        if ( labelsField.get(indLabel).getData().equals(zfs.getZvol().zProperties.get(keyProp).getNameProperty()) ){
2667 14 kreverch
                                                labelsField.get(indLabel).setText(zfs.getZvol().zProperties.get(keyProp).getValue());
2668 14 kreverch
                                        }
2669 14 kreverch
                                }
2670 14 kreverch
                        }
2671 14 kreverch
                }else{
2672 14 kreverch
                        for (int i=0;i<keysProp.length;i++){
2673 14 kreverch
                                keyProp = keysProp[i];
2674 14 kreverch
                                if ( "noupdateable".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getType())) {
2675 14 kreverch
                                        for (int indLabel=0;indLabel<labelsField.size();indLabel++){
2676 14 kreverch
                                                if ( labelsField.get(indLabel).getData().equals(zfs.getZvol().zProperties.get(keyProp).getNameProperty())){
2677 14 kreverch
                                                        labelsField.get(indLabel).setText(zfs.getZvol().zProperties.get(keyProp).getValue());
2678 14 kreverch
                                                }
2679 14 kreverch
2680 14 kreverch
                                        }
2681 14 kreverch
                                }else{
2682 14 kreverch
                                        if ( "freeentry".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getType())) {
2683 14 kreverch
                                                for (int indText=0;indText<textsField.size();indText++){
2684 14 kreverch
                                                        if ( textsField.get(indText).getData().equals(zfs.getZvol().zProperties.get(keyProp).getNameProperty()) ){
2685 14 kreverch
                                                                textsField.get(indText).setText(zfs.getZvol().zProperties.get(keyProp).getValue());
2686 14 kreverch
                                                        }
2687 14 kreverch
                                                }
2688 14 kreverch
2689 14 kreverch
                                        }else{
2690 14 kreverch
2691 14 kreverch
                                                if ( "nofreeentry".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getType())) {
2692 14 kreverch
                                                        for (int indCombo=0;indCombo<combosField.size();indCombo++){
2693 14 kreverch
                                                                if ( combosField.get(indCombo).getData().equals(zfs.getZvol().zProperties.get(keyProp).getNameProperty()) ){
2694 14 kreverch
                                                                        combosField.get(indCombo).setText(zfs.getZvol().zProperties.get(keyProp).getValue());
2695 14 kreverch
                                                                }
2696 14 kreverch
                                                        }
2697 14 kreverch
                                                }
2698 14 kreverch
                                        }
2699 14 kreverch
                                }
2700 14 kreverch
                        }
2701 14 kreverch
                        Button btnSaveChange = new Button(compositeConfig,SWT.WRAP|SWT.BORDER);
2702 14 kreverch
                        GridData gridDataBtnSaveChanges = new GridData(GridData.FILL, GridData.CENTER, true, false);
2703 14 kreverch
                        //gridDataChart.heightHint = 250;
2704 14 kreverch
                        //gridDataChart.horizontalSpan = 2;
2705 14 kreverch
                        btnSaveChange.setText("Save Changes");
2706 14 kreverch
                        btnSaveChange.setLayoutData(gridDataBtnSaveChanges);
2707 14 kreverch
                        Button btnDestroyVolFS = new Button(compositeConfig,SWT.WRAP|SWT.BORDER);
2708 14 kreverch
                        GridData gridDataBtnDestroyVolFS = new GridData(GridData.FILL, GridData.CENTER, true, false);
2709 14 kreverch
                        btnSaveChange.setEnabled(false);
2710 14 kreverch
                        //gridDataChart.heightHint = 250;
2711 14 kreverch
                        //gridDataChart.horizontalSpan = 2;
2712 14 kreverch
                        btnDestroyVolFS.setText("Delete");
2713 14 kreverch
                        btnDestroyVolFS.setLayoutData(gridDataBtnDestroyVolFS);
2714 14 kreverch
                        btnDestroyVolFS.addListener(SWT.Selection, new Listener() {
2715 14 kreverch
2716 14 kreverch
                                public void handleEvent(final Event event) {
2717 14 kreverch
                                        log.debug("btnDestroyVolFS.addListener :"+zfs.getZvol().zProperties.get("name").getValue()+" "+zfs.getZvol().zProperties.get("type").getValue());
2718 14 kreverch
                                        destroyVolFS();
2719 14 kreverch
                                }
2720 14 kreverch
                        });
2721 14 kreverch
2722 14 kreverch
                        guiTrt=new guiTrt();
2723 14 kreverch
                        //create Chart
2724 14 kreverch
                        if ( "volume".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue())) {
2725 14 kreverch
                                guiTrt.formatChartValue(zfs.getZvol().zProperties.get("volsize").getValue(), zfs.getZvol().zProperties.get("usedbydataset").getValue(), zfs.getZvol().zProperties.get("usedbysnapshots").getValue());
2726 14 kreverch
                        }else{
2727 14 kreverch
                                if ( "filesystem".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue())) {
2728 14 kreverch
                                        guiTrt.formatChartValue(zfs.getZvol().zProperties.get("available").getValue(), zfs.getZvol().zProperties.get("usedbydataset").getValue(), zfs.getZvol().zProperties.get("usedbysnapshots").getValue());
2729 14 kreverch
                                }
2730 14 kreverch
                        }
2731 14 kreverch
2732 14 kreverch
                        dataCharset.clear();
2733 14 kreverch
                        this.dataCharset.put("Used By Data : "+zfs.getZvol().zProperties.get("usedbydataset").getValue(), guiTrt.getZfsUsedByData()) ;
2734 14 kreverch
                        this.dataCharset.put("Used By Snapshots : "+zfs.getZvol().zProperties.get("usedbysnapshots").getValue(), guiTrt.getZfsUsedBySnapshots()) ;
2735 14 kreverch
                        this.dataCharset.put("Free : "+BigDecimal.valueOf(guiTrt.getZfsFree()).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()+guiTrt.getUnit(), guiTrt.getZfsFreePourcent()) ;
2736 14 kreverch
                        PieDataset dataset = guiTrt.createDataset(dataCharset);
2737 14 kreverch
                        JFreeChart chartVolumeConfig = guiTrt.createChart(dataset, "Total Volume size : "+zfs.getZvol().zProperties.get("volsize").getValue());
2738 14 kreverch
                        if ( chartVolumeComposite != null){
2739 14 kreverch
                                if ( !chartVolumeComposite.isDisposed()){
2740 14 kreverch
                                        chartVolumeComposite.dispose();
2741 14 kreverch
                                }
2742 14 kreverch
                        }
2743 14 kreverch
2744 14 kreverch
                        //Create Grid for Chart
2745 14 kreverch
                        //gridDataChart = new GridData(GridData.FILL, GridData.CENTER, true, false);
2746 14 kreverch
                        gridDataChart = new GridData(SWT.FILL, SWT.FILL, true, true);
2747 14 kreverch
                        //gridDataChart.heightHint = 275;
2748 14 kreverch
                        //gridDataChart.heightHint =compositeConfig.
2749 14 kreverch
                        gridDataChart.horizontalSpan = 2;
2750 14 kreverch
                        //Create Composite for Chart
2751 14 kreverch
                        chartVolumeComposite= new ChartComposite(compositeConfig, SWT.BORDER, chartVolumeConfig, true);
2752 14 kreverch
                        chartVolumeComposite.setLayoutData(gridDataChart);
2753 14 kreverch
                        chartVolumeComposite.layout();
2754 14 kreverch
                        compositeConfig.layout();
2755 14 kreverch
                }
2756 14 kreverch
2757 14 kreverch
        }
2758 14 kreverch
2759 14 kreverch
        public void updateItemTreeZfsList(Boolean statusIscsi, String itemData,  TreeItem rootTree, String infoUsedSize, int indexTree){
2760 14 kreverch
                TreeItem root;
2761 14 kreverch
                if (indexTree ==-1){
2762 14 kreverch
                        root = new TreeItem(rootTree, SWT.None);
2763 14 kreverch
                }else{
2764 14 kreverch
                        root = new TreeItem(rootTree,SWT.None, indexTree);
2765 14 kreverch
                }
2766 14 kreverch
                root.setText(itemData+" ("+infoUsedSize+")");
2767 14 kreverch
2768 14 kreverch
2769 14 kreverch
                if (statusIscsi){
2770 14 kreverch
                        if ("filesystem".equals(zfs.getZvol().zProperties.get("type").getValue())){
2771 14 kreverch
                                root.setImage(imageFSOnline);
2772 14 kreverch
                        }else{
2773 14 kreverch
                                root.setImage(imageStorageOnline);
2774 14 kreverch
                        }
2775 14 kreverch
2776 14 kreverch
                }else{
2777 14 kreverch
                        if ("filesystem".equals(zfs.getZvol().zProperties.get("type").getValue())){
2778 14 kreverch
                                root.setImage(imageFSOffline);
2779 14 kreverch
                        }else{
2780 14 kreverch
                                root.setImage(imageStorageOffline);
2781 14 kreverch
                        }
2782 14 kreverch
2783 14 kreverch
                }
2784 14 kreverch
                root.setData(itemData);
2785 14 kreverch
                //Set Object Zvol to empty
2786 14 kreverch
                zfs.setZvol();
2787 14 kreverch
                zfs.setZiscsi();
2788 14 kreverch
        }
2789 14 kreverch
2790 14 kreverch
2791 14 kreverch
        public void actionClickTree(Event evt){
2792 14 kreverch
                final TreeItem root = (TreeItem) evt.item;
2793 14 kreverch
                strItemServer ="";
2794 14 kreverch
                strItemZvolFS="";
2795 14 kreverch
                countItem=0;
2796 14 kreverch
                thrGetallZvol = new Thread(new Runnable() {
2797 14 kreverch
2798 14 kreverch
                        public void run() {
2799 14 kreverch
                                Display.getDefault().syncExec(new Runnable() {
2800 14 kreverch
                                        public void run() {
2801 14 kreverch
                                                wPB.open();
2802 14 kreverch
2803 14 kreverch
                                        }
2804 14 kreverch
                                });
2805 14 kreverch
2806 14 kreverch
2807 14 kreverch
                                Display.getDefault().syncExec(new Runnable() {
2808 14 kreverch
                                        public void run() {
2809 14 kreverch
2810 14 kreverch
                                                if ( root.getParentItem() != null){
2811 14 kreverch
2812 14 kreverch
                                                        final TreeItem parentRoot = root.getParentItem();
2813 14 kreverch
                                                        if ( parentRoot.getParentItem() != null){
2814 14 kreverch
                                                                strItemServer=parentRoot.getParentItem().getData().toString();
2815 14 kreverch
2816 14 kreverch
                                                        }else{
2817 14 kreverch
                                                                strItemServer=root.getParentItem().getData().toString();
2818 14 kreverch
2819 14 kreverch
                                                        }
2820 14 kreverch
2821 14 kreverch
                                                        strItemZvolFS=root.getData().toString();
2822 14 kreverch
                                                        log.debug(strItemZvolFS);
2823 14 kreverch
                                                        countItem=root.getItemCount();
2824 14 kreverch
                                                        if (countItem <1){
2825 14 kreverch
                                                                root.clearAll(true);
2826 14 kreverch
                                                                root.setItemCount(0);
2827 14 kreverch
                                                        }
2828 14 kreverch
                                                }
2829 14 kreverch
                                        }
2830 14 kreverch
                                });
2831 14 kreverch
                                if (!strItemServer.equalsIgnoreCase("")){
2832 14 kreverch
                                        zfs.getServer(strItemServer);
2833 14 kreverch
                                        zfs.zfsGetAllVolume(strItemZvolFS);
2834 14 kreverch
2835 14 kreverch
                                        if ( countItem <1 && !zfs.getZvol().zProperties.get("type").getValue().equalsIgnoreCase("snapshot")){
2836 14 kreverch
                                                final List<Object> zlistSnapshots = zfs.zfsListSnapshotsByVolFS(strItemZvolFS);
2837 14 kreverch
2838 14 kreverch
                                                Display.getDefault().syncExec(new Runnable() {
2839 14 kreverch
                                                        public void run() {
2840 14 kreverch
2841 14 kreverch
                                                                for (int i = 0; i < zlistSnapshots.size(); i++) {
2842 14 kreverch
                                                                        TreeItem item = new TreeItem(root, 0);
2843 14 kreverch
                                                                        item.setText(zlistSnapshots.get(i).toString());
2844 14 kreverch
                                                                        item.setData(zlistSnapshots.get(i).toString());
2845 14 kreverch
                                                                        if ( zfs.getIscsiListConfigVol(zlistSnapshots.get(i).toString()) && ! "".equalsIgnoreCase(zfs.getZiscsi().zProperties.get("tid").getValue())){
2846 14 kreverch
                                                                                item.setImage(imageSnapshotOnline);
2847 14 kreverch
                                                                        }else{
2848 14 kreverch
                                                                                item.setImage(imageSnapshotOffline);
2849 14 kreverch
                                                                        }
2850 14 kreverch
2851 14 kreverch
                                                                }
2852 14 kreverch
                                                        }
2853 14 kreverch
                                                });
2854 14 kreverch
                                        }
2855 14 kreverch
2856 14 kreverch
                                        Display.getDefault().syncExec(new Runnable(){
2857 14 kreverch
                                                public void run(){
2858 14 kreverch
                                                        if ( !tbtmConfig.isDisposed()){
2859 14 kreverch
                                                                tbtmConfig.dispose();
2860 14 kreverch
                                                                tabFolderConfig.layout();
2861 14 kreverch
                                                        }
2862 14 kreverch
                                                        createTabItemVolConfig();
2863 14 kreverch
                                                        refreshConfigVolume();
2864 14 kreverch
2865 14 kreverch
2866 14 kreverch
                                                        if (! zfs.getZvol().zProperties.get("type").getValue().equalsIgnoreCase("snapshot")){
2867 14 kreverch
                                                                if (tbtmSnapshot.isDisposed()){
2868 14 kreverch
                                                                        createTabItemSnapshot();
2869 14 kreverch
                                                                }
2870 14 kreverch
                                                                refreshConfigSnapshot();
2871 14 kreverch
2872 14 kreverch
                                                        }else{
2873 14 kreverch
                                                                if ( !tbtmSnapshot.isDisposed()){
2874 14 kreverch
                                                                        tbtmSnapshot.dispose();
2875 14 kreverch
                                                                }
2876 14 kreverch
2877 14 kreverch
                                                        }
2878 14 kreverch
                                                        tabFolderConfig.setSelection(tbtmConfig);
2879 14 kreverch
                                                        refreshIscsiSession();
2880 14 kreverch
                                                        refreshConfigReplica();
2881 14 kreverch
                                                        tabFolderConfig.layout();
2882 14 kreverch
                                                        wPB.close();
2883 14 kreverch
                                                        menuTreeZFS();
2884 14 kreverch
                                                        tree.setMenu(treeZFSMenu);
2885 14 kreverch
2886 14 kreverch
2887 14 kreverch
                                                }
2888 14 kreverch
                                        });
2889 14 kreverch
2890 14 kreverch
                                }
2891 14 kreverch
                        }
2892 14 kreverch
                });
2893 14 kreverch
2894 14 kreverch
                thrGetallZvol.start();
2895 14 kreverch
        }
2896 14 kreverch
2897 14 kreverch
2898 14 kreverch
        public void menuTreeZFS(){
2899 14 kreverch
                if (treeZFSMenu != null && !treeZFSMenu.isDisposed()){
2900 14 kreverch
                        treeZFSMenu.dispose();
2901 14 kreverch
                }
2902 14 kreverch
                treeZFSMenu = new Menu(shell, SWT.POP_UP);
2903 14 kreverch
                MenuItem refreshZFSMenu = new MenuItem(treeZFSMenu, SWT.PUSH);
2904 14 kreverch
                refreshZFSMenu.setText("Refresh");
2905 14 kreverch
                refreshZFSMenu.addListener(SWT.Selection, new Listener() {
2906 14 kreverch
                        public void handleEvent(final Event event) {
2907 14 kreverch
2908 14 kreverch
                                tree.getSelection()[0].removeAll();
2909 14 kreverch
                                wPB = new guiProgress(shell.getDisplay(), shell.getLocation().x, shell.getLocation().y);
2910 14 kreverch
                                TreeItem itemSelected = tree.getSelection()[0];
2911 14 kreverch
                                while (itemSelected.getParentItem()!=null){
2912 14 kreverch
                                        itemSelected=itemSelected.getParentItem();
2913 14 kreverch
                                }
2914 14 kreverch
                                itemSelected.removeAll();
2915 14 kreverch
                                refreshTreeZFSList(itemSelected);
2916 14 kreverch
2917 14 kreverch
2918 14 kreverch
                        }
2919 14 kreverch
                });
2920 14 kreverch
2921 14 kreverch
                if ("volume".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue())||
2922 14 kreverch
                                "filesystem".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue())){
2923 14 kreverch
                        MenuItem snapshotVolFS = new MenuItem(treeZFSMenu, SWT.PUSH);
2924 14 kreverch
                        snapshotVolFS.setText("Launch Snapshoting");
2925 14 kreverch
                        snapshotVolFS.addListener(SWT.Selection, new Listener() {
2926 14 kreverch
                                public void handleEvent(final Event event) {
2927 14 kreverch
                                        zfs.zfsSnapshots();
2928 14 kreverch
                                        String[] keysPropError = zfs.getError().keySet().toArray(new String[0]);
2929 14 kreverch
2930 14 kreverch
                                        Arrays.sort(keysPropError);
2931 14 kreverch
                                        String textBox = "";
2932 14 kreverch
                                        for (int i = 0; i < keysPropError.length; i++) {
2933 14 kreverch
                                                String keyPropError = keysPropError[i];
2934 14 kreverch
                                                textBox = textBox +zfs.getError().get(keyPropError)+".\n";
2935 14 kreverch
                                        }
2936 14 kreverch
                                        if (keysPropError.length>0){
2937 14 kreverch
                                                MessageBox messageBoxError = new MessageBox(shell, SWT.DIALOG_TRIM);
2938 14 kreverch
                                                messageBoxError.setText("Warning");
2939 14 kreverch
                                                messageBoxError.setMessage(textBox);
2940 14 kreverch
                                                messageBoxError.open();
2941 14 kreverch
                                        }
2942 14 kreverch
                                }
2943 14 kreverch
                        });
2944 14 kreverch
2945 14 kreverch
                        MenuItem replicaVol = new MenuItem(treeZFSMenu, SWT.PUSH);
2946 14 kreverch
                        replicaVol.setText("Launch Replication");
2947 14 kreverch
                        replicaVol.addListener(SWT.Selection, new Listener() {
2948 14 kreverch
                                public void handleEvent(final Event event) {
2949 14 kreverch
                                        zfs.zfsReplicas();
2950 14 kreverch
                                        String[] keysPropError = zfs.getError().keySet().toArray(new String[0]);
2951 14 kreverch
2952 14 kreverch
                                        Arrays.sort(keysPropError);
2953 14 kreverch
                                        String textBox = "";
2954 14 kreverch
                                        for (int i = 0; i < keysPropError.length; i++) {
2955 14 kreverch
                                                String keyPropError = keysPropError[i];
2956 14 kreverch
                                                textBox = textBox +zfs.getError().get(keyPropError)+".\n";
2957 14 kreverch
                                        }
2958 14 kreverch
                                        if (keysPropError.length>0){
2959 14 kreverch
                                                MessageBox messageBoxError = new MessageBox(shell, SWT.DIALOG_TRIM);
2960 14 kreverch
                                                messageBoxError.setText("Warning");
2961 14 kreverch
                                                messageBoxError.setMessage(textBox);
2962 14 kreverch
                                                messageBoxError.open();
2963 14 kreverch
                                        }
2964 14 kreverch
                                }
2965 14 kreverch
                        });
2966 14 kreverch
                }
2967 14 kreverch
2968 14 kreverch
                if ("volume".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue())||
2969 14 kreverch
                                "filesystem".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue())||
2970 14 kreverch
                                "snapshot".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue())){
2971 14 kreverch
2972 14 kreverch
                        MenuItem removeVolFS = new MenuItem(treeZFSMenu, SWT.PUSH);
2973 14 kreverch
                        removeVolFS.setText("Remove "+zfs.getZvol().zProperties.get("name").getValue());
2974 14 kreverch
                        removeVolFS.addListener(SWT.Selection, new Listener() {
2975 14 kreverch
                                public void handleEvent(final Event event) {
2976 14 kreverch
                                        destroyVolFS();
2977 14 kreverch
                                }
2978 14 kreverch
                        });
2979 14 kreverch
                }
2980 14 kreverch
                if("snapshot".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue())){
2981 14 kreverch
                        MenuItem cloneSnapshpt = new MenuItem(treeZFSMenu, SWT.PUSH);
2982 14 kreverch
                        cloneSnapshpt.setText("Clone "+zfs.getZvol().zProperties.get("name").getValue());
2983 14 kreverch
                        cloneSnapshpt.addListener(SWT.Selection, new Listener() {
2984 14 kreverch
                                public void handleEvent(final Event event) {
2985 14 kreverch
                                        zfs.zfsClone();
2986 14 kreverch
                                        if ( zfs.getError().size()>0){
2987 14 kreverch
2988 14 kreverch
                                        }else{
2989 14 kreverch
                                                int indRoot=0;
2990 14 kreverch
                                                int indItem=0;
2991 14 kreverch
                                                if ("filesystem".equals(zfs.getZvol().zProperties.get("type").getValue())){
2992 14 kreverch
                                                        infoUsedSize=zfs.getZvol().zProperties.get("usedbydataset").getValue()+"/"+zfs.getZvol().zProperties.get("available").getValue();
2993 14 kreverch
                                                }else{
2994 14 kreverch
                                                        infoUsedSize=zfs.getZvol().zProperties.get("used").getValue()+" / "+zfs.getZvol().zProperties.get("volsize").getValue();
2995 14 kreverch
                                                }
2996 14 kreverch
                                                for (int indT=0;indT<tree.getItemCount();indT++){
2997 14 kreverch
                                                        if (tree.getItem(indT).getData().toString().equals(zfs.getZserver().zProperties.get("serverIP").getValue())){
2998 14 kreverch
                                                                for (int indTreeVolFS=0;indTreeVolFS<tree.getItem(indT).getItemCount();indTreeVolFS++){
2999 14 kreverch
                                                                        if (tree.getItem(indT).getItem(indTreeVolFS).getData().toString().compareTo(zfs.getZvol().zProperties.get("name").getValue()) >0){
3000 14 kreverch
                                                                                if (zfs.getError().size()>0){
3001 14 kreverch
                                                                                        updateItemTreeZfsList(false,zfs.getZvol().zProperties.get("name").getValue(), tree.getItem(indT), infoUsedSize ,indTreeVolFS);
3002 14 kreverch
                                                                                }else{
3003 14 kreverch
                                                                                        updateItemTreeZfsList(true, zfs.getZvol().zProperties.get("name").getValue(), tree.getItem(indT), infoUsedSize ,indTreeVolFS);
3004 14 kreverch
                                                                                }
3005 14 kreverch
                                                                                indRoot=indT;
3006 14 kreverch
                                                                                indItem=indTreeVolFS;
3007 14 kreverch
                                                                                break;
3008 14 kreverch
                                                                        }
3009 14 kreverch
                                                                }
3010 14 kreverch
                                                                if ( indItem==0){
3011 14 kreverch
                                                                        int indTreeVolFS=tree.getItem(indT).getItemCount();
3012 14 kreverch
                                                                        if (zfs.getError().size()>0){
3013 14 kreverch
                                                                                updateItemTreeZfsList(false,zfs.getZvol().zProperties.get("name").getValue(), tree.getItem(indT), infoUsedSize ,indTreeVolFS);
3014 14 kreverch
                                                                        }else{
3015 14 kreverch
                                                                                updateItemTreeZfsList(true,zfs.getZvol().zProperties.get("name").getValue(), tree.getItem(indT), infoUsedSize ,indTreeVolFS);
3016 14 kreverch
                                                                        }
3017 14 kreverch
                                                                        indRoot=indT;
3018 14 kreverch
                                                                        indItem=indTreeVolFS;
3019 14 kreverch
                                                                }
3020 14 kreverch
                                                                tree.layout();
3021 14 kreverch
                                                        }
3022 14 kreverch
                                                }
3023 14 kreverch
                                        }
3024 14 kreverch
                                }
3025 14 kreverch
                        });
3026 14 kreverch
                }
3027 14 kreverch
3028 14 kreverch
        }
3029 14 kreverch
3030 14 kreverch
        public void destroyVolFS(){
3031 14 kreverch
                if ( !"".equals(zfs.getZvol().zProperties.get("name").getValue())){
3032 14 kreverch
                        MessageBox messageBoxConfirm = new MessageBox(shell, SWT.YES|SWT.NO);
3033 14 kreverch
                        messageBoxConfirm.setText("Warning");
3034 14 kreverch
                        String textBoxConfirm="Remove : "+zfs.getZvol().zProperties.get("name").getValue()+" ?";
3035 14 kreverch
                        messageBoxConfirm.setMessage(textBoxConfirm);
3036 14 kreverch
                        int answerIDConfirm= messageBoxConfirm.open();
3037 14 kreverch
                        if (answerIDConfirm == SWT.YES){
3038 14 kreverch
                                if ("filesystem".equals(zfs.getZvol().zProperties.get("type").getValue())){
3039 14 kreverch
                                        if ("yes".equals(zfs.getZvol().zProperties.get("mounted").getValue()) ){
3040 14 kreverch
                                                MessageBox messageBoxInfo = new MessageBox(shell, SWT.YES|SWT.NO);
3041 14 kreverch
                                                messageBoxInfo.setText("Warning");
3042 14 kreverch
                                                String textBox=zfs.getZvol().zProperties.get("name").getValue()+" is mounted\n Do you want umount it ?";
3043 14 kreverch
                                                messageBoxInfo.setMessage(textBox);
3044 14 kreverch
                                                int answerID= messageBoxInfo.open();
3045 14 kreverch
                                                if (answerID == SWT.YES){
3046 14 kreverch
                                                        zfs.zfsUmountFS();
3047 14 kreverch
                                                        String[] keysPropError = zfs.getError().keySet().toArray(new String[0]);
3048 14 kreverch
                                                        //String[] keysProp = (String[]) zfs.getZserver().zProperties.keySet().toArray(new String[0]);
3049 14 kreverch
                                                        Arrays.sort(keysPropError);
3050 14 kreverch
                                                        textBox = "";
3051 14 kreverch
                                                        for (int i = 0; i < keysPropError.length; i++) {
3052 14 kreverch
                                                                String keyPropError = keysPropError[i];
3053 14 kreverch
                                                                textBox = textBox +zfs.getError().get(keyPropError)+".\n";
3054 14 kreverch
                                                        }
3055 14 kreverch
                                                        if (keysPropError.length>0){
3056 14 kreverch
                                                                MessageBox messageBoxError = new MessageBox(shell, SWT.DIALOG_TRIM);
3057 14 kreverch
                                                                messageBoxError.setText("Warning");
3058 14 kreverch
                                                                messageBoxError.setMessage(textBox);
3059 14 kreverch
                                                                messageBoxError.open();
3060 14 kreverch
                                                        }else{
3061 14 kreverch
                                                                zfs.zfsDestroyVolFS();
3062 14 kreverch
                                                                keysPropError = zfs.getError().keySet().toArray(new String[0]);
3063 14 kreverch
3064 14 kreverch
                                                                Arrays.sort(keysPropError);
3065 14 kreverch
                                                                textBox = "";
3066 14 kreverch
                                                                for (int i = 0; i < keysPropError.length; i++) {
3067 14 kreverch
                                                                        String keyPropError = keysPropError[i];
3068 14 kreverch
                                                                        textBox = textBox +zfs.getError().get(keyPropError)+".\n";
3069 14 kreverch
                                                                }
3070 14 kreverch
                                                                if (keysPropError.length>0){
3071 14 kreverch
                                                                        MessageBox messageBoxError = new MessageBox(shell, SWT.DIALOG_TRIM);
3072 14 kreverch
                                                                        messageBoxError.setText("Warning");
3073 14 kreverch
                                                                        messageBoxError.setMessage(textBox);
3074 14 kreverch
                                                                        messageBoxError.open();
3075 14 kreverch
                                                                }else{
3076 14 kreverch
                                                                        tree.getSelection()[0].clearAll(true);
3077 14 kreverch
                                                                        tree.getSelection()[0].dispose();
3078 14 kreverch
                                                                        tree.layout();
3079 14 kreverch
                                                                        zfs.setZvol();
3080 14 kreverch
                                                                        if ( !tbtmConfig.isDisposed()){
3081 14 kreverch
                                                                                tbtmConfig.dispose();
3082 14 kreverch
                                                                                tabFolderConfig.layout();
3083 14 kreverch
                                                                        }
3084 14 kreverch
                                                                        createTabItemVolConfig();
3085 14 kreverch
                                                                        refreshConfigVolume();
3086 14 kreverch
                                                                        tabFolderConfig.layout();
3087 14 kreverch
3088 14 kreverch
                                                                }
3089 14 kreverch
                                                        }
3090 14 kreverch
                                                }
3091 14 kreverch
                                        }else{
3092 14 kreverch
                                                zfs.zfsDestroyVolFS();
3093 14 kreverch
                                                String[] keysPropError = zfs.getError().keySet().toArray(new String[0]);
3094 14 kreverch
3095 14 kreverch
                                                Arrays.sort(keysPropError);
3096 14 kreverch
                                                String textBox = "";
3097 14 kreverch
                                                for (int i = 0; i < keysPropError.length; i++) {
3098 14 kreverch
                                                        String keyPropError = keysPropError[i];
3099 14 kreverch
                                                        textBox = textBox +zfs.getError().get(keyPropError)+".\n";
3100 14 kreverch
                                                }
3101 14 kreverch
                                                if (keysPropError.length>0){
3102 14 kreverch
                                                        MessageBox messageBoxError = new MessageBox(shell, SWT.DIALOG_TRIM);
3103 14 kreverch
                                                        messageBoxError.setText("Warning");
3104 14 kreverch
                                                        messageBoxError.setMessage(textBox);
3105 14 kreverch
                                                        messageBoxError.open();
3106 14 kreverch
                                                }else{
3107 14 kreverch
                                                        tree.getSelection()[0].clearAll(true);
3108 14 kreverch
                                                        tree.getSelection()[0].dispose();
3109 14 kreverch
                                                        tree.layout();
3110 14 kreverch
                                                        zfs.setZvol();
3111 14 kreverch
                                                        if ( !tbtmConfig.isDisposed()){
3112 14 kreverch
                                                                tbtmConfig.dispose();
3113 14 kreverch
                                                                tabFolderConfig.layout();
3114 14 kreverch
                                                        }
3115 14 kreverch
                                                        createTabItemVolConfig();
3116 14 kreverch
                                                        refreshConfigVolume();
3117 14 kreverch
                                                        tabFolderConfig.layout();
3118 14 kreverch
3119 14 kreverch
                                                        if (! zfs.getZvol().zProperties.get("type").getValue().equalsIgnoreCase("snapshot")){
3120 14 kreverch
                                                                //refreshInfoSnapshot();
3121 14 kreverch
                                                                refreshConfigSnapshot();
3122 14 kreverch
                                                        }
3123 14 kreverch
                                                        tabFolderConfig.setSelection(tbtmConfig);
3124 14 kreverch
                                                        refreshIscsiSession();
3125 14 kreverch
                                                }
3126 14 kreverch
                                        }
3127 14 kreverch
                                }else{
3128 14 kreverch
                                        if ( "volume".equals(zfs.getZvol().zProperties.get("type").getValue())){
3129 14 kreverch
                                                zfs.zfsDelIscsi();
3130 14 kreverch
                                                String[] keysPropError = zfs.getError().keySet().toArray(new String[0]);
3131 14 kreverch
3132 14 kreverch
                                                Arrays.sort(keysPropError);
3133 14 kreverch
                                                String textBox = "";
3134 14 kreverch
                                                for (int i = 0; i < keysPropError.length; i++) {
3135 14 kreverch
                                                        String keyPropError = keysPropError[i];
3136 14 kreverch
                                                        textBox = textBox +zfs.getError().get(keyPropError)+".\n";
3137 14 kreverch
                                                }
3138 14 kreverch
                                                if (keysPropError.length>0){
3139 14 kreverch
                                                        MessageBox messageBoxError = new MessageBox(shell, SWT.DIALOG_TRIM);
3140 14 kreverch
                                                        messageBoxError.setText("Warning");
3141 14 kreverch
                                                        messageBoxError.setMessage(textBox);
3142 14 kreverch
                                                        messageBoxError.open();
3143 14 kreverch
                                                }else{
3144 14 kreverch
                                                        zfs.zfsDestroyVolFS();
3145 14 kreverch
                                                        keysPropError = zfs.getError().keySet().toArray(new String[0]);
3146 14 kreverch
3147 14 kreverch
                                                        Arrays.sort(keysPropError);
3148 14 kreverch
                                                        textBox = "";
3149 14 kreverch
                                                        for (int i = 0; i < keysPropError.length; i++) {
3150 14 kreverch
                                                                String keyPropError = keysPropError[i];
3151 14 kreverch
                                                                textBox = textBox +zfs.getError().get(keyPropError)+".\n";
3152 14 kreverch
                                                        }
3153 14 kreverch
                                                        if (keysPropError.length>0){
3154 14 kreverch
                                                                MessageBox messageBoxError = new MessageBox(shell, SWT.DIALOG_TRIM);
3155 14 kreverch
                                                                messageBoxError.setText("Warning");
3156 14 kreverch
                                                                messageBoxError.setMessage(textBox);
3157 14 kreverch
                                                                messageBoxError.open();
3158 14 kreverch
                                                        }else{
3159 14 kreverch
                                                                zfs.zfsDisableSnapshots();
3160 14 kreverch
                                                                tree.getSelection()[0].clearAll(true);
3161 14 kreverch
                                                                tree.getSelection()[0].dispose();
3162 14 kreverch
                                                                tree.layout();
3163 14 kreverch
                                                                zfs.setZvol();
3164 14 kreverch
                                                                if ( !tbtmConfig.isDisposed()){
3165 14 kreverch
                                                                        tbtmConfig.dispose();
3166 14 kreverch
                                                                        tabFolderConfig.layout();
3167 14 kreverch
                                                                }
3168 14 kreverch
                                                                createTabItemVolConfig();
3169 14 kreverch
                                                                refreshConfigVolume();
3170 14 kreverch
                                                                tabFolderConfig.layout();
3171 14 kreverch
3172 14 kreverch
                                                                if (! zfs.getZvol().zProperties.get("type").getValue().equalsIgnoreCase("snapshot")){
3173 14 kreverch
                                                                        refreshConfigSnapshot();
3174 14 kreverch
                                                                }
3175 14 kreverch
                                                                tabFolderConfig.setSelection(tbtmConfig);
3176 14 kreverch
                                                                refreshIscsiSession();
3177 14 kreverch
                                                        }
3178 14 kreverch
                                                }
3179 14 kreverch
                                        }else{
3180 14 kreverch
                                                if ( "snapshot".equals(zfs.getZvol().zProperties.get("type").getValue())){
3181 14 kreverch
                                                        zfs.zfsDelIscsi();
3182 14 kreverch
                                                        String[] keysPropError = zfs.getError().keySet().toArray(new String[0]);
3183 14 kreverch
3184 14 kreverch
                                                        Arrays.sort(keysPropError);
3185 14 kreverch
                                                        String textBox = "";
3186 14 kreverch
                                                        for (int i = 0; i < keysPropError.length; i++) {
3187 14 kreverch
                                                                String keyPropError = keysPropError[i];
3188 14 kreverch
                                                                textBox = textBox +zfs.getError().get(keyPropError)+".\n";
3189 14 kreverch
                                                        }
3190 14 kreverch
                                                        if (keysPropError.length>0){
3191 14 kreverch
                                                                MessageBox messageBoxError = new MessageBox(shell, SWT.DIALOG_TRIM);
3192 14 kreverch
                                                                messageBoxError.setText("Warning");
3193 14 kreverch
                                                                messageBoxError.setMessage(textBox);
3194 14 kreverch
                                                                messageBoxError.open();
3195 14 kreverch
                                                        }else{
3196 14 kreverch
                                                                zfs.zfsDestroyVolFS();
3197 14 kreverch
                                                                keysPropError = zfs.getError().keySet().toArray(new String[0]);
3198 14 kreverch
3199 14 kreverch
                                                                Arrays.sort(keysPropError);
3200 14 kreverch
                                                                textBox = "";
3201 14 kreverch
                                                                for (int i = 0; i < keysPropError.length; i++) {
3202 14 kreverch
                                                                        String keyPropError = keysPropError[i];
3203 14 kreverch
                                                                        textBox = textBox +zfs.getError().get(keyPropError)+".\n";
3204 14 kreverch
                                                                }
3205 14 kreverch
                                                                if (keysPropError.length>0){
3206 14 kreverch
                                                                        MessageBox messageBoxError = new MessageBox(shell, SWT.DIALOG_TRIM);
3207 14 kreverch
                                                                        messageBoxError.setText("Warning");
3208 14 kreverch
                                                                        messageBoxError.setMessage(textBox);
3209 14 kreverch
                                                                        messageBoxError.open();
3210 14 kreverch
                                                                }else{
3211 14 kreverch
                                                                        zfs.zfsDisableSnapshots();
3212 14 kreverch
                                                                        tree.getSelection()[0].clearAll(true);
3213 14 kreverch
                                                                        tree.getSelection()[0].dispose();
3214 14 kreverch
                                                                        tree.layout();
3215 14 kreverch
                                                                        zfs.setZvol();
3216 14 kreverch
                                                                        if ( !tbtmConfig.isDisposed()){
3217 14 kreverch
                                                                                tbtmConfig.dispose();
3218 14 kreverch
                                                                                tabFolderConfig.layout();
3219 14 kreverch
                                                                        }
3220 14 kreverch
                                                                        createTabItemVolConfig();
3221 14 kreverch
                                                                        refreshConfigVolume();
3222 14 kreverch
                                                                        tabFolderConfig.layout();
3223 14 kreverch
3224 14 kreverch
                                                                        if (! zfs.getZvol().zProperties.get("type").getValue().equalsIgnoreCase("snapshot")){
3225 14 kreverch
                                                                                refreshConfigSnapshot();
3226 14 kreverch
                                                                        }
3227 14 kreverch
                                                                        tabFolderConfig.setSelection(tbtmConfig);
3228 14 kreverch
                                                                        refreshIscsiSession();
3229 14 kreverch
                                                                }
3230 14 kreverch
                                                        }
3231 14 kreverch
                                                }
3232 14 kreverch
3233 14 kreverch
3234 14 kreverch
                                        }
3235 14 kreverch
3236 14 kreverch
                                }
3237 14 kreverch
                        }
3238 14 kreverch
3239 14 kreverch
3240 14 kreverch
                }
3241 14 kreverch
        }
3242 14 kreverch
3243 14 kreverch
3244 14 kreverch
3245 14 kreverch
}