Statistiques
| Révision :

root / src / gZFS / gui.java @ 56

Historique | Voir | Annoter | Télécharger (146,95 ko)

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

2983 14 kreverch
                                        Arrays.sort(keysPropError);
2984 14 kreverch
                                        String textBox = "";
2985 14 kreverch
                                        for (int i = 0; i < keysPropError.length; i++) {
2986 14 kreverch
                                                String keyPropError = keysPropError[i];
2987 14 kreverch
                                                textBox = textBox +zfs.getError().get(keyPropError)+".\n";
2988 14 kreverch
                                        }
2989 14 kreverch
                                        if (keysPropError.length>0){
2990 14 kreverch
                                                MessageBox messageBoxError = new MessageBox(shell, SWT.DIALOG_TRIM);
2991 14 kreverch
                                                messageBoxError.setText("Warning");
2992 14 kreverch
                                                messageBoxError.setMessage(textBox);
2993 14 kreverch
                                                messageBoxError.open();
2994 14 kreverch
                                        }
2995 14 kreverch
                                }
2996 56 kreverch
                        });        */
2997 14 kreverch
                }
2998 14 kreverch
2999 14 kreverch
                if ("volume".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue())||
3000 14 kreverch
                                "filesystem".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue())||
3001 14 kreverch
                                "snapshot".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue())){
3002 14 kreverch
3003 14 kreverch
                        MenuItem removeVolFS = new MenuItem(treeZFSMenu, SWT.PUSH);
3004 14 kreverch
                        removeVolFS.setText("Remove "+zfs.getZvol().zProperties.get("name").getValue());
3005 14 kreverch
                        removeVolFS.addListener(SWT.Selection, new Listener() {
3006 14 kreverch
                                public void handleEvent(final Event event) {
3007 14 kreverch
                                        destroyVolFS();
3008 14 kreverch
                                }
3009 14 kreverch
                        });
3010 14 kreverch
                }
3011 14 kreverch
                if("snapshot".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue())){
3012 14 kreverch
                        MenuItem cloneSnapshpt = new MenuItem(treeZFSMenu, SWT.PUSH);
3013 14 kreverch
                        cloneSnapshpt.setText("Clone "+zfs.getZvol().zProperties.get("name").getValue());
3014 14 kreverch
                        cloneSnapshpt.addListener(SWT.Selection, new Listener() {
3015 14 kreverch
                                public void handleEvent(final Event event) {
3016 14 kreverch
                                        zfs.zfsClone();
3017 14 kreverch
                                        if ( zfs.getError().size()>0){
3018 14 kreverch
3019 14 kreverch
                                        }else{
3020 14 kreverch
                                                int indRoot=0;
3021 14 kreverch
                                                int indItem=0;
3022 14 kreverch
                                                if ("filesystem".equals(zfs.getZvol().zProperties.get("type").getValue())){
3023 14 kreverch
                                                        infoUsedSize=zfs.getZvol().zProperties.get("usedbydataset").getValue()+"/"+zfs.getZvol().zProperties.get("available").getValue();
3024 14 kreverch
                                                }else{
3025 14 kreverch
                                                        infoUsedSize=zfs.getZvol().zProperties.get("used").getValue()+" / "+zfs.getZvol().zProperties.get("volsize").getValue();
3026 14 kreverch
                                                }
3027 14 kreverch
                                                for (int indT=0;indT<tree.getItemCount();indT++){
3028 14 kreverch
                                                        if (tree.getItem(indT).getData().toString().equals(zfs.getZserver().zProperties.get("serverIP").getValue())){
3029 14 kreverch
                                                                for (int indTreeVolFS=0;indTreeVolFS<tree.getItem(indT).getItemCount();indTreeVolFS++){
3030 14 kreverch
                                                                        if (tree.getItem(indT).getItem(indTreeVolFS).getData().toString().compareTo(zfs.getZvol().zProperties.get("name").getValue()) >0){
3031 14 kreverch
                                                                                if (zfs.getError().size()>0){
3032 14 kreverch
                                                                                        updateItemTreeZfsList(false,zfs.getZvol().zProperties.get("name").getValue(), tree.getItem(indT), infoUsedSize ,indTreeVolFS);
3033 14 kreverch
                                                                                }else{
3034 14 kreverch
                                                                                        updateItemTreeZfsList(true, zfs.getZvol().zProperties.get("name").getValue(), tree.getItem(indT), infoUsedSize ,indTreeVolFS);
3035 14 kreverch
                                                                                }
3036 14 kreverch
                                                                                indRoot=indT;
3037 14 kreverch
                                                                                indItem=indTreeVolFS;
3038 14 kreverch
                                                                                break;
3039 14 kreverch
                                                                        }
3040 14 kreverch
                                                                }
3041 14 kreverch
                                                                if ( indItem==0){
3042 14 kreverch
                                                                        int indTreeVolFS=tree.getItem(indT).getItemCount();
3043 14 kreverch
                                                                        if (zfs.getError().size()>0){
3044 14 kreverch
                                                                                updateItemTreeZfsList(false,zfs.getZvol().zProperties.get("name").getValue(), tree.getItem(indT), infoUsedSize ,indTreeVolFS);
3045 14 kreverch
                                                                        }else{
3046 14 kreverch
                                                                                updateItemTreeZfsList(true,zfs.getZvol().zProperties.get("name").getValue(), tree.getItem(indT), infoUsedSize ,indTreeVolFS);
3047 14 kreverch
                                                                        }
3048 14 kreverch
                                                                        indRoot=indT;
3049 14 kreverch
                                                                        indItem=indTreeVolFS;
3050 14 kreverch
                                                                }
3051 14 kreverch
                                                                tree.layout();
3052 14 kreverch
                                                        }
3053 14 kreverch
                                                }
3054 14 kreverch
                                        }
3055 14 kreverch
                                }
3056 14 kreverch
                        });
3057 14 kreverch
                }
3058 14 kreverch
3059 14 kreverch
        }
3060 14 kreverch
3061 14 kreverch
        public void destroyVolFS(){
3062 14 kreverch
                if ( !"".equals(zfs.getZvol().zProperties.get("name").getValue())){
3063 14 kreverch
                        MessageBox messageBoxConfirm = new MessageBox(shell, SWT.YES|SWT.NO);
3064 14 kreverch
                        messageBoxConfirm.setText("Warning");
3065 14 kreverch
                        String textBoxConfirm="Remove : "+zfs.getZvol().zProperties.get("name").getValue()+" ?";
3066 14 kreverch
                        messageBoxConfirm.setMessage(textBoxConfirm);
3067 14 kreverch
                        int answerIDConfirm= messageBoxConfirm.open();
3068 14 kreverch
                        if (answerIDConfirm == SWT.YES){
3069 14 kreverch
                                if ("filesystem".equals(zfs.getZvol().zProperties.get("type").getValue())){
3070 14 kreverch
                                        if ("yes".equals(zfs.getZvol().zProperties.get("mounted").getValue()) ){
3071 14 kreverch
                                                MessageBox messageBoxInfo = new MessageBox(shell, SWT.YES|SWT.NO);
3072 14 kreverch
                                                messageBoxInfo.setText("Warning");
3073 14 kreverch
                                                String textBox=zfs.getZvol().zProperties.get("name").getValue()+" is mounted\n Do you want umount it ?";
3074 14 kreverch
                                                messageBoxInfo.setMessage(textBox);
3075 14 kreverch
                                                int answerID= messageBoxInfo.open();
3076 14 kreverch
                                                if (answerID == SWT.YES){
3077 14 kreverch
                                                        zfs.zfsUmountFS();
3078 14 kreverch
                                                        String[] keysPropError = zfs.getError().keySet().toArray(new String[0]);
3079 14 kreverch
                                                        //String[] keysProp = (String[]) zfs.getZserver().zProperties.keySet().toArray(new String[0]);
3080 14 kreverch
                                                        Arrays.sort(keysPropError);
3081 14 kreverch
                                                        textBox = "";
3082 14 kreverch
                                                        for (int i = 0; i < keysPropError.length; i++) {
3083 14 kreverch
                                                                String keyPropError = keysPropError[i];
3084 14 kreverch
                                                                textBox = textBox +zfs.getError().get(keyPropError)+".\n";
3085 14 kreverch
                                                        }
3086 14 kreverch
                                                        if (keysPropError.length>0){
3087 14 kreverch
                                                                MessageBox messageBoxError = new MessageBox(shell, SWT.DIALOG_TRIM);
3088 14 kreverch
                                                                messageBoxError.setText("Warning");
3089 14 kreverch
                                                                messageBoxError.setMessage(textBox);
3090 14 kreverch
                                                                messageBoxError.open();
3091 14 kreverch
                                                        }else{
3092 14 kreverch
                                                                zfs.zfsDestroyVolFS();
3093 14 kreverch
                                                                keysPropError = zfs.getError().keySet().toArray(new String[0]);
3094 14 kreverch
3095 14 kreverch
                                                                Arrays.sort(keysPropError);
3096 14 kreverch
                                                                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
                                                                }
3120 14 kreverch
                                                        }
3121 14 kreverch
                                                }
3122 14 kreverch
                                        }else{
3123 14 kreverch
                                                zfs.zfsDestroyVolFS();
3124 14 kreverch
                                                String[] keysPropError = zfs.getError().keySet().toArray(new String[0]);
3125 14 kreverch
3126 14 kreverch
                                                Arrays.sort(keysPropError);
3127 14 kreverch
                                                String textBox = "";
3128 14 kreverch
                                                for (int i = 0; i < keysPropError.length; i++) {
3129 14 kreverch
                                                        String keyPropError = keysPropError[i];
3130 14 kreverch
                                                        textBox = textBox +zfs.getError().get(keyPropError)+".\n";
3131 14 kreverch
                                                }
3132 14 kreverch
                                                if (keysPropError.length>0){
3133 14 kreverch
                                                        MessageBox messageBoxError = new MessageBox(shell, SWT.DIALOG_TRIM);
3134 14 kreverch
                                                        messageBoxError.setText("Warning");
3135 14 kreverch
                                                        messageBoxError.setMessage(textBox);
3136 14 kreverch
                                                        messageBoxError.open();
3137 14 kreverch
                                                }else{
3138 14 kreverch
                                                        tree.getSelection()[0].clearAll(true);
3139 14 kreverch
                                                        tree.getSelection()[0].dispose();
3140 14 kreverch
                                                        tree.layout();
3141 14 kreverch
                                                        zfs.setZvol();
3142 14 kreverch
                                                        if ( !tbtmConfig.isDisposed()){
3143 14 kreverch
                                                                tbtmConfig.dispose();
3144 14 kreverch
                                                                tabFolderConfig.layout();
3145 14 kreverch
                                                        }
3146 14 kreverch
                                                        createTabItemVolConfig();
3147 14 kreverch
                                                        refreshConfigVolume();
3148 14 kreverch
                                                        tabFolderConfig.layout();
3149 14 kreverch
3150 14 kreverch
                                                        if (! zfs.getZvol().zProperties.get("type").getValue().equalsIgnoreCase("snapshot")){
3151 14 kreverch
                                                                //refreshInfoSnapshot();
3152 14 kreverch
                                                                refreshConfigSnapshot();
3153 14 kreverch
                                                        }
3154 14 kreverch
                                                        tabFolderConfig.setSelection(tbtmConfig);
3155 14 kreverch
                                                        refreshIscsiSession();
3156 14 kreverch
                                                }
3157 14 kreverch
                                        }
3158 14 kreverch
                                }else{
3159 14 kreverch
                                        if ( "volume".equals(zfs.getZvol().zProperties.get("type").getValue())){
3160 14 kreverch
                                                zfs.zfsDelIscsi();
3161 14 kreverch
                                                String[] keysPropError = zfs.getError().keySet().toArray(new String[0]);
3162 14 kreverch
3163 14 kreverch
                                                Arrays.sort(keysPropError);
3164 14 kreverch
                                                String textBox = "";
3165 14 kreverch
                                                for (int i = 0; i < keysPropError.length; i++) {
3166 14 kreverch
                                                        String keyPropError = keysPropError[i];
3167 14 kreverch
                                                        textBox = textBox +zfs.getError().get(keyPropError)+".\n";
3168 14 kreverch
                                                }
3169 14 kreverch
                                                if (keysPropError.length>0){
3170 14 kreverch
                                                        MessageBox messageBoxError = new MessageBox(shell, SWT.DIALOG_TRIM);
3171 14 kreverch
                                                        messageBoxError.setText("Warning");
3172 14 kreverch
                                                        messageBoxError.setMessage(textBox);
3173 14 kreverch
                                                        messageBoxError.open();
3174 14 kreverch
                                                }else{
3175 14 kreverch
                                                        zfs.zfsDestroyVolFS();
3176 14 kreverch
                                                        keysPropError = zfs.getError().keySet().toArray(new String[0]);
3177 14 kreverch
3178 14 kreverch
                                                        Arrays.sort(keysPropError);
3179 14 kreverch
                                                        textBox = "";
3180 14 kreverch
                                                        for (int i = 0; i < keysPropError.length; i++) {
3181 14 kreverch
                                                                String keyPropError = keysPropError[i];
3182 14 kreverch
                                                                textBox = textBox +zfs.getError().get(keyPropError)+".\n";
3183 14 kreverch
                                                        }
3184 14 kreverch
                                                        if (keysPropError.length>0){
3185 14 kreverch
                                                                MessageBox messageBoxError = new MessageBox(shell, SWT.DIALOG_TRIM);
3186 14 kreverch
                                                                messageBoxError.setText("Warning");
3187 14 kreverch
                                                                messageBoxError.setMessage(textBox);
3188 14 kreverch
                                                                messageBoxError.open();
3189 14 kreverch
                                                        }else{
3190 14 kreverch
                                                                zfs.zfsDisableSnapshots();
3191 14 kreverch
                                                                tree.getSelection()[0].clearAll(true);
3192 14 kreverch
                                                                tree.getSelection()[0].dispose();
3193 14 kreverch
                                                                tree.layout();
3194 14 kreverch
                                                                zfs.setZvol();
3195 14 kreverch
                                                                if ( !tbtmConfig.isDisposed()){
3196 14 kreverch
                                                                        tbtmConfig.dispose();
3197 14 kreverch
                                                                        tabFolderConfig.layout();
3198 14 kreverch
                                                                }
3199 14 kreverch
                                                                createTabItemVolConfig();
3200 14 kreverch
                                                                refreshConfigVolume();
3201 14 kreverch
                                                                tabFolderConfig.layout();
3202 14 kreverch
3203 14 kreverch
                                                                if (! zfs.getZvol().zProperties.get("type").getValue().equalsIgnoreCase("snapshot")){
3204 14 kreverch
                                                                        refreshConfigSnapshot();
3205 14 kreverch
                                                                }
3206 14 kreverch
                                                                tabFolderConfig.setSelection(tbtmConfig);
3207 14 kreverch
                                                                refreshIscsiSession();
3208 14 kreverch
                                                        }
3209 14 kreverch
                                                }
3210 14 kreverch
                                        }else{
3211 14 kreverch
                                                if ( "snapshot".equals(zfs.getZvol().zProperties.get("type").getValue())){
3212 14 kreverch
                                                        zfs.zfsDelIscsi();
3213 14 kreverch
                                                        String[] keysPropError = zfs.getError().keySet().toArray(new String[0]);
3214 14 kreverch
3215 14 kreverch
                                                        Arrays.sort(keysPropError);
3216 14 kreverch
                                                        String textBox = "";
3217 14 kreverch
                                                        for (int i = 0; i < keysPropError.length; i++) {
3218 14 kreverch
                                                                String keyPropError = keysPropError[i];
3219 14 kreverch
                                                                textBox = textBox +zfs.getError().get(keyPropError)+".\n";
3220 14 kreverch
                                                        }
3221 14 kreverch
                                                        if (keysPropError.length>0){
3222 14 kreverch
                                                                MessageBox messageBoxError = new MessageBox(shell, SWT.DIALOG_TRIM);
3223 14 kreverch
                                                                messageBoxError.setText("Warning");
3224 14 kreverch
                                                                messageBoxError.setMessage(textBox);
3225 14 kreverch
                                                                messageBoxError.open();
3226 14 kreverch
                                                        }else{
3227 14 kreverch
                                                                zfs.zfsDestroyVolFS();
3228 14 kreverch
                                                                keysPropError = zfs.getError().keySet().toArray(new String[0]);
3229 14 kreverch
3230 14 kreverch
                                                                Arrays.sort(keysPropError);
3231 14 kreverch
                                                                textBox = "";
3232 14 kreverch
                                                                for (int i = 0; i < keysPropError.length; i++) {
3233 14 kreverch
                                                                        String keyPropError = keysPropError[i];
3234 14 kreverch
                                                                        textBox = textBox +zfs.getError().get(keyPropError)+".\n";
3235 14 kreverch
                                                                }
3236 14 kreverch
                                                                if (keysPropError.length>0){
3237 14 kreverch
                                                                        MessageBox messageBoxError = new MessageBox(shell, SWT.DIALOG_TRIM);
3238 14 kreverch
                                                                        messageBoxError.setText("Warning");
3239 14 kreverch
                                                                        messageBoxError.setMessage(textBox);
3240 14 kreverch
                                                                        messageBoxError.open();
3241 14 kreverch
                                                                }else{
3242 14 kreverch
                                                                        zfs.zfsDisableSnapshots();
3243 14 kreverch
                                                                        tree.getSelection()[0].clearAll(true);
3244 14 kreverch
                                                                        tree.getSelection()[0].dispose();
3245 14 kreverch
                                                                        tree.layout();
3246 14 kreverch
                                                                        zfs.setZvol();
3247 14 kreverch
                                                                        if ( !tbtmConfig.isDisposed()){
3248 14 kreverch
                                                                                tbtmConfig.dispose();
3249 14 kreverch
                                                                                tabFolderConfig.layout();
3250 14 kreverch
                                                                        }
3251 14 kreverch
                                                                        createTabItemVolConfig();
3252 14 kreverch
                                                                        refreshConfigVolume();
3253 14 kreverch
                                                                        tabFolderConfig.layout();
3254 14 kreverch
3255 14 kreverch
                                                                        if (! zfs.getZvol().zProperties.get("type").getValue().equalsIgnoreCase("snapshot")){
3256 14 kreverch
                                                                                refreshConfigSnapshot();
3257 14 kreverch
                                                                        }
3258 14 kreverch
                                                                        tabFolderConfig.setSelection(tbtmConfig);
3259 14 kreverch
                                                                        refreshIscsiSession();
3260 14 kreverch
                                                                }
3261 14 kreverch
                                                        }
3262 14 kreverch
                                                }
3263 14 kreverch
3264 14 kreverch
3265 14 kreverch
                                        }
3266 14 kreverch
3267 14 kreverch
                                }
3268 14 kreverch
                        }
3269 14 kreverch
3270 14 kreverch
3271 14 kreverch
                }
3272 14 kreverch
        }
3273 14 kreverch
3274 14 kreverch
3275 14 kreverch
3276 14 kreverch
}