Statistiques
| Révision :

root / src / gZFS / gui.java @ 53

Historique | Voir | Annoter | Télécharger (145,86 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 14 kreverch
                                                infoUsedSize=zfs.getZvol().zProperties.get("usedbydataset").getValue()+"/"+zfs.getZvol().zProperties.get("available").getValue();
1729 14 kreverch
                                        }else{
1730 14 kreverch
                                                infoUsedSize=zfs.getZvol().zProperties.get("used").getValue()+" / "+zfs.getZvol().zProperties.get("volsize").getValue();
1731 14 kreverch
                                        }
1732 14 kreverch
                                        if ( ("volume".equals(zfs.getZvol().zProperties.get("type").getValue()) && zfs.getIscsiListConfigVol(zfsList.get(i).toString()) && ! "".equalsIgnoreCase(zfs.getZiscsi().zProperties.get("tid").getValue()))
1733 14 kreverch
                                                        || ("filesystem".equals(zfs.getZvol().zProperties.get("type").getValue()) && "yes".equals(zfs.getZvol().zProperties.get("mounted").getValue()))        ){
1734 14 kreverch
                                                Display.getDefault().syncExec(new Runnable() {
1735 14 kreverch
                                                        public void run() {
1736 14 kreverch
                                                                updateItemTreeZfsList(true, zfsList.get(ind).toString(),  rootTree,infoUsedSize,-1);
1737 14 kreverch
                                                        }
1738 14 kreverch
                                                });
1739 14 kreverch
                                        }else{
1740 14 kreverch
                                                Display.getDefault().syncExec(new Runnable() {
1741 14 kreverch
                                                        public void run() {
1742 14 kreverch
                                                                updateItemTreeZfsList(false, zfsList.get(ind).toString(),  rootTree,infoUsedSize,-1);
1743 14 kreverch
                                                        }
1744 14 kreverch
                                                });
1745 14 kreverch
                                        }
1746 14 kreverch
                                }
1747 14 kreverch
                                Display.getDefault().syncExec(new Runnable() {
1748 14 kreverch
                                        public void run() {
1749 14 kreverch
                                                btnConnectServer.setEnabled(true);
1750 14 kreverch
                                                tabFolderNav.setEnabled(true);
1751 14 kreverch
                                                wPB.close();
1752 14 kreverch
                                        }
1753 14 kreverch
                                });
1754 14 kreverch
                        }
1755 14 kreverch
1756 14 kreverch
                });
1757 14 kreverch
                thrConnect.start();
1758 14 kreverch
                log.debug("refreshZFSList");
1759 14 kreverch
        }
1760 14 kreverch
1761 14 kreverch
        public void refreshTreeZpoolList(){
1762 14 kreverch
1763 14 kreverch
                if (zfs.getCacheSession().containsKey(zfs.getZserver().zProperties.get("serverIP").getValue()) ){
1764 14 kreverch
                        final TreeItem root = treeZpool.getSelection()[0];
1765 14 kreverch
                        root.setImage(imageServerOnline);
1766 14 kreverch
                        log.debug("refreshTreeZpoolList "+" "+keyProp);
1767 14 kreverch
1768 14 kreverch
                        zpoolList = zfs.zpoolList();
1769 14 kreverch
                        for (int indPool = 0; indPool < zpoolList.size(); indPool++) {
1770 14 kreverch
                                TreeItem item = new TreeItem(root, 0);
1771 14 kreverch
                                item.setText(zpoolList.get(indPool).toString());
1772 14 kreverch
                                item.setImage(imageStorage);
1773 14 kreverch
                                item.setData(zpoolList.get(indPool).toString());
1774 14 kreverch
                                //new TreeItem(root, 0);
1775 14 kreverch
                        }
1776 14 kreverch
                        boolean checkExistInTree = false;
1777 14 kreverch
1778 14 kreverch
                        for (int ind=0;ind<tree.getItemCount();ind++){
1779 14 kreverch
                                log.debug("refreshTreeZpoolList "+tree.getItem(ind).getData().toString()+" "+zfs.getZserver().zProperties.get("serverIP").getValue());
1780 14 kreverch
                                if ( tree.getItem(ind).getData().toString().equalsIgnoreCase(zfs.getZserver().zProperties.get("serverIP").getValue())){
1781 14 kreverch
                                        checkExistInTree=true;
1782 14 kreverch
                                }
1783 14 kreverch
                        }
1784 14 kreverch
                        if ( ! checkExistInTree ){
1785 14 kreverch
                                TreeItem rootTreeZvolFS = new TreeItem(tree,SWT.None);
1786 14 kreverch
                                rootTreeZvolFS.setText(zfs.getZserver().zProperties.get("serverIP").getValue());
1787 14 kreverch
                                rootTreeZvolFS.setData(zfs.getZserver().zProperties.get("serverIP").getValue());
1788 14 kreverch
                                rootTreeZvolFS.setImage(imageStorageServer);
1789 14 kreverch
                                refreshTreeZFSList(rootTreeZvolFS);
1790 14 kreverch
                        }else{
1791 14 kreverch
                                btnConnectServer.setEnabled(true);
1792 14 kreverch
                                tabFolderNav.setEnabled(true);
1793 14 kreverch
                                wPB.close();
1794 14 kreverch
                        }
1795 14 kreverch
                }else{
1796 14 kreverch
                        treeZpool.clearAll(true);
1797 14 kreverch
                        treeZpool.setItemCount(0);
1798 14 kreverch
                        List<Object> listGetServer = zfs.getListServer();
1799 14 kreverch
1800 14 kreverch
                        for (int i=0;i<listGetServer.size();i++){
1801 14 kreverch
                                zfs.getServer(listGetServer.get(i).toString());
1802 14 kreverch
                                final TreeItem root = new TreeItem(treeZpool,SWT.None);
1803 14 kreverch
                                root.setText(zfs.getZserver().zProperties.get("serverIP").getValue());
1804 14 kreverch
                                root.setData(zfs.getZserver().zProperties.get("serverIP").getValue());
1805 14 kreverch
                                root.setImage(imageServerOffline);
1806 14 kreverch
1807 14 kreverch
                        }
1808 14 kreverch
1809 14 kreverch
                }
1810 14 kreverch
1811 14 kreverch
        }
1812 14 kreverch
1813 14 kreverch
1814 14 kreverch
        private void refreshInfoServer(){
1815 14 kreverch
                String[] keysProp = (String[]) zfs.getZserver().zProperties.keySet().toArray(new String[0]);
1816 14 kreverch
                Arrays.sort(keysProp);
1817 14 kreverch
1818 14 kreverch
                for (int i = 0; i < keysProp.length; i++) {
1819 14 kreverch
                        keyProp = keysProp[i];
1820 14 kreverch
                        if ( "noupdateable".equalsIgnoreCase(zfs.getZserver().zProperties.get(keyProp).getType())) {
1821 14 kreverch
                                for (int indLabel=0;indLabel<labelsFieldServer.size();indLabel++){
1822 14 kreverch
                                        if ( labelsFieldServer.get(indLabel).getData().equals(zfs.getZserver().zProperties.get(keyProp).getNameProperty()) ){
1823 14 kreverch
                                                labelsFieldServer.get(indLabel).setText(zfs.getZserver().zProperties.get(keyProp).getValue());
1824 14 kreverch
                                        }
1825 14 kreverch
                                }
1826 14 kreverch
                        }else{
1827 14 kreverch
                                if ( "freeentry".equalsIgnoreCase(zfs.getZserver().zProperties.get(keyProp).getType())) {
1828 14 kreverch
                                        for (int indText=0;indText<textsFieldServer.size();indText++){
1829 14 kreverch
                                                if ( textsFieldServer.get(indText).getData().equals(zfs.getZserver().zProperties.get(keyProp).getNameProperty()) ){
1830 14 kreverch
                                                        textsFieldServer.get(indText).setText(zfs.getZserver().zProperties.get(keyProp).getValue());
1831 14 kreverch
                                                }
1832 14 kreverch
                                        }
1833 14 kreverch
                                }else{
1834 14 kreverch
                                        if ( "nofreeentry".equalsIgnoreCase(zfs.getZserver().zProperties.get(keyProp).getType())) {
1835 14 kreverch
                                                for (int indCombo=0;indCombo<combosFieldServer.size();indCombo++){
1836 14 kreverch
                                                        if ( combosFieldServer.get(indCombo).getData().equals(zfs.getZserver().zProperties.get(keyProp).getNameProperty()) ){
1837 14 kreverch
                                                                combosFieldServer.get(indCombo).setText(zfs.getZserver().zProperties.get(keyProp).getValue());
1838 14 kreverch
                                                        }
1839 14 kreverch
                                                }
1840 14 kreverch
                                        }
1841 14 kreverch
                                }
1842 14 kreverch
                        }
1843 14 kreverch
                }
1844 14 kreverch
        }
1845 14 kreverch
1846 14 kreverch
        private void refreshInfoZpool(){
1847 14 kreverch
1848 14 kreverch
                String[] keysProp = (String[]) zfs.getZpool().zProperties.keySet().toArray(new String[0]);
1849 14 kreverch
                Arrays.sort(keysProp);
1850 14 kreverch
                log.debug(keysProp);
1851 14 kreverch
                for (int i = 0; i < keysProp.length; i++) {
1852 14 kreverch
                        keyProp = keysProp[i];
1853 14 kreverch
                        if ( "noupdateable".equalsIgnoreCase(zfs.getZpool().zProperties.get(keyProp).getType())) {
1854 14 kreverch
                                for (int indLabel=0;indLabel<labelsFieldPool.size();indLabel++){
1855 14 kreverch
                                        if ( labelsFieldPool.get(indLabel).getData().equals(zfs.getZpool().zProperties.get(keyProp).getNameProperty()) ){
1856 14 kreverch
                                                labelsFieldPool.get(indLabel).setText(zfs.getZpool().zProperties.get(keyProp).getValue());
1857 14 kreverch
                                        }
1858 14 kreverch
                                }
1859 14 kreverch
                        }else{
1860 14 kreverch
                                if ( "freeentry".equalsIgnoreCase(zfs.getZpool().zProperties.get(keyProp).getType())) {
1861 14 kreverch
                                        for (int indText=0;indText<textsFieldPool.size();indText++){
1862 14 kreverch
                                                if ( textsFieldPool.get(indText).getData().equals(zfs.getZpool().zProperties.get(keyProp).getNameProperty()) ){
1863 14 kreverch
                                                        textsFieldPool.get(indText).setText(zfs.getZpool().zProperties.get(keyProp).getValue());
1864 14 kreverch
                                                }
1865 14 kreverch
                                        }
1866 14 kreverch
                                }else{
1867 14 kreverch
                                        if ( "nofreeentry".equalsIgnoreCase(zfs.getZpool().zProperties.get(keyProp).getType())) {
1868 14 kreverch
                                                for (int indCombo=0;indCombo<combosFieldPool.size();indCombo++){
1869 14 kreverch
                                                        if ( combosFieldPool.get(indCombo).getData().equals(zfs.getZpool().zProperties.get(keyProp).getNameProperty()) ){
1870 14 kreverch
                                                                combosFieldPool.get(indCombo).setText(zfs.getZserver().zProperties.get(keyProp).getValue());
1871 14 kreverch
                                                        }
1872 14 kreverch
                                                }
1873 14 kreverch
                                        }
1874 14 kreverch
                                }
1875 14 kreverch
                        }
1876 14 kreverch
                }
1877 14 kreverch
1878 14 kreverch
                //Create Chart Provisioned Space
1879 14 kreverch
                dataCharset.clear();
1880 14 kreverch
                if ( !zfs.getZpool().zProperties.get("realuseablespace").getValue().equals("")){
1881 14 kreverch
1882 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());
1883 14 kreverch
                        log.debug(refUnit);
1884 14 kreverch
                        float provisionspace = zfs.convertInReferenceUnit(zfs.getZpool().zProperties.get("provisionspace").getValue(), refUnit);
1885 14 kreverch
                        float realuseablespace = zfs.convertInReferenceUnit(zfs.getZpool().zProperties.get("realuseablespace").getValue(), refUnit);
1886 14 kreverch
                        float provisionspaceInPourcent = guiTrt.dataInPourcent(provisionspace,realuseablespace);
1887 14 kreverch
                        float freespace = realuseablespace - provisionspace;
1888 14 kreverch
                        float freespaceInPourcent =  guiTrt.dataInPourcent(freespace,realuseablespace);
1889 14 kreverch
                        this.dataCharset.put("Provisioned Space: "+ zfs.getZpool().zProperties.get("provisionspace").getValue(), provisionspaceInPourcent);
1890 14 kreverch
                        this.dataCharset.put("Free Space: "+BigDecimal.valueOf(freespace).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()+refUnit, freespaceInPourcent  );
1891 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()))) ;
1892 14 kreverch
                        PieDataset dataset = guiTrt.createDataset(dataCharset);
1893 14 kreverch
                        JFreeChart chartVolumeConfig = guiTrt.createChart(dataset, "Provisioned Space on "+zfs.getZpool().zProperties.get("realuseablespace").getValue());
1894 14 kreverch
                        if ( chartVolumeComposite != null){
1895 14 kreverch
                                if ( !chartVolumeComposite.isDisposed()){
1896 14 kreverch
                                        chartVolumeComposite.dispose();
1897 14 kreverch
                                }
1898 14 kreverch
                        }
1899 14 kreverch
1900 14 kreverch
                        //Create Grid for Chart
1901 14 kreverch
                        gridDataChart =new GridData(SWT.FILL, SWT.FILL, true, true);
1902 14 kreverch
                        //gridDataChart.heightHint = 200;
1903 14 kreverch
                        //Create Composite for Chart
1904 14 kreverch
                        chartVolumeComposite= new ChartComposite(compositeZpoolConfig, SWT.BORDER, chartVolumeConfig, true);
1905 14 kreverch
                        chartVolumeComposite.setLayoutData(gridDataChart);
1906 14 kreverch
1907 14 kreverch
                        //Create Chart Used Space
1908 14 kreverch
                        dataCharset.clear();
1909 14 kreverch
                        log.debug(refUnit);
1910 14 kreverch
                        float usedspace = zfs.convertInReferenceUnit(zfs.getZvol().zProperties.get("used").getValue(), refUnit);
1911 14 kreverch
                        float usedspaceInPourcent = guiTrt.dataInPourcent(usedspace,realuseablespace);
1912 14 kreverch
                        log.debug("usedspace :"+usedspace+" realuseablespace : "+realuseablespace+" usedspaceInPourcent "+usedspaceInPourcent);
1913 14 kreverch
                        freespace = realuseablespace - usedspace;
1914 14 kreverch
                        freespaceInPourcent =  guiTrt.dataInPourcent(freespace,realuseablespace);
1915 14 kreverch
                        log.debug("freespace : "+freespace+" freespaceInPourcent :"+freespaceInPourcent);
1916 14 kreverch
                        this.dataCharset.put("Used Space: "+ zfs.getZvol().zProperties.get("used").getValue(), usedspaceInPourcent);
1917 14 kreverch
                        this.dataCharset.put("Free Space: "+BigDecimal.valueOf(freespace).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()+refUnit, freespaceInPourcent  );
1918 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()))) ;
1919 14 kreverch
                        PieDataset datasetUsed = guiTrt.createDataset(dataCharset);
1920 14 kreverch
                        JFreeChart chartZpoolUsedSpace = guiTrt.createChart(datasetUsed, "Used Space on "+zfs.getZpool().zProperties.get("realuseablespace").getValue());
1921 14 kreverch
                        if ( chartZpoolUsedComposite != null){
1922 14 kreverch
                                if ( !chartZpoolUsedComposite.isDisposed()){
1923 14 kreverch
                                        chartZpoolUsedComposite.dispose();
1924 14 kreverch
                                }
1925 14 kreverch
                        }
1926 14 kreverch
1927 14 kreverch
                        //Create Grid for Chart
1928 14 kreverch
                        gridDataChart =new GridData(SWT.FILL, SWT.FILL, true, true);
1929 14 kreverch
                        gridDataChart.heightHint = 200;
1930 14 kreverch
                        //gridDataChart.horizontalSpan = 2;
1931 14 kreverch
                        //Create Composite for Chart
1932 14 kreverch
                        chartZpoolUsedComposite= new ChartComposite(compositeZpoolConfig, SWT.BORDER, chartZpoolUsedSpace, true);
1933 14 kreverch
                        chartZpoolUsedComposite.setLayoutData(gridDataChart);
1934 14 kreverch
1935 14 kreverch
1936 14 kreverch
                        compositeZpoolConfig.layout();
1937 14 kreverch
                }
1938 14 kreverch
1939 14 kreverch
        }
1940 14 kreverch
1941 14 kreverch
        private void  refreshDisks(){
1942 14 kreverch
                zfs.getZpoolStatus();
1943 14 kreverch
                for ( int cptL=0;cptL<labelsFieldDisks.size();cptL++){
1944 14 kreverch
                        if ( !labelsFieldDisks.get(cptL).isDisposed()){
1945 14 kreverch
                                labelsFieldDisks.get(cptL).dispose();
1946 14 kreverch
                        }
1947 14 kreverch
                }
1948 14 kreverch
                for ( int cptL=0;cptL<labelsFieldZRaid.size();cptL++){
1949 14 kreverch
                        if ( !labelsFieldZRaid.get(cptL).isDisposed()){
1950 14 kreverch
                                labelsFieldZRaid.get(cptL).dispose();
1951 14 kreverch
                        }
1952 14 kreverch
                }
1953 14 kreverch
1954 14 kreverch
                if ( groupDisks != null && !groupDisks.isDisposed()){
1955 14 kreverch
                        groupDisks.dispose();
1956 14 kreverch
                }
1957 14 kreverch
                groupDisks = new Group(compositeDisks,SWT.NONE);
1958 14 kreverch
                groupDisks.setBackground(groupBackgroundColor);
1959 14 kreverch
                groupDisks.setLayout(new GridLayout());
1960 14 kreverch
1961 14 kreverch
                GridData gridDataDisks=new GridData(SWT.FILL, SWT.FILL, true, true);
1962 14 kreverch
                gridDataDisks.horizontalSpan=6;
1963 14 kreverch
                groupDisks.setLayoutData(gridDataDisks);
1964 14 kreverch
1965 14 kreverch
                if (scrolledDisks != null && !scrolledDisks.isDisposed()){
1966 14 kreverch
                        scrolledDisks.isDisposed();
1967 14 kreverch
                }
1968 14 kreverch
                scrolledDisks=new ScrolledComposite(groupDisks,SWT.V_SCROLL);
1969 14 kreverch
                scrolledDisks.setLayoutData(new GridData(GridData.FILL_BOTH));
1970 14 kreverch
1971 14 kreverch
                if (compositeWidgetDisks != null && !compositeWidgetDisks.isDisposed()){
1972 14 kreverch
                        compositeWidgetDisks.isDisposed();
1973 14 kreverch
                }
1974 14 kreverch
                compositeWidgetDisks=new Composite(scrolledDisks,SWT.NONE);
1975 14 kreverch
                compositeWidgetDisks.setBackground(compositeBackgroundColor);
1976 14 kreverch
                GridLayout gridLayoutWidgetDisks = new GridLayout();
1977 14 kreverch
                gridLayoutWidgetDisks.numColumns =6;
1978 14 kreverch
                compositeWidgetDisks.setLayout(gridLayoutWidgetDisks);
1979 14 kreverch
1980 14 kreverch
                GridData gridDataTitleDisks = new GridData(GridData.FILL, GridData.CENTER, true, false);
1981 14 kreverch
                gridDataTitleDisks.horizontalSpan = 6;
1982 14 kreverch
                if (compositeWidgetDisks != null && !compositeWidgetDisks.isDisposed()){
1983 14 kreverch
                        compositeWidgetDisks.isDisposed();
1984 14 kreverch
                }
1985 14 kreverch
                Label lblTitleInfoDisks = new Label(compositeWidgetDisks, SWT.CENTER|SWT.BORDER);
1986 14 kreverch
                lblTitleInfoDisks.setLayoutData(gridDataTitleDisks);
1987 14 kreverch
                lblTitleInfoDisks.setFont(fontTitle);
1988 14 kreverch
                lblTitleInfoDisks.setBackground(labelTitleBackgroundColor);
1989 14 kreverch
                lblTitleInfoDisks.setText("ZFS Informations Disks");
1990 14 kreverch
1991 14 kreverch
                String[] keysPropHashDisks = (String[]) zfs.getHashDisks().keySet().toArray(new String[0]);
1992 14 kreverch
                Arrays.sort(keysPropHashDisks);
1993 14 kreverch
                String[] keysPropHashZraid = (String[]) zfs.getHashZRaid().keySet().toArray(new String[0]);
1994 14 kreverch
                Arrays.sort(keysPropHashZraid);
1995 14 kreverch
                //Arrays.sort(keysPropHashZraid);
1996 14 kreverch
                for (int cptZraid=0;cptZraid<zfs.getHashZRaid().size();cptZraid++){
1997 14 kreverch
1998 14 kreverch
                        String keyPropHashZraid = keysPropHashZraid[cptZraid];
1999 14 kreverch
                        GridData gridDataLabelZraid = new GridData(GridData.FILL, GridData.CENTER, true, false);
2000 14 kreverch
                        gridDataLabelZraid.horizontalSpan=6;
2001 14 kreverch
                        if (zfs.getZpool().zProperties.get("name").getValue().equalsIgnoreCase(zfs.getHashZRaid().get(keyPropHashZraid).zProperties.get("poolname").getValue())){
2002 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());
2003 14 kreverch
                                if ( !"".equals(zfs.getHashZRaid().get(keyPropHashZraid).zProperties.get("raidid").getValue())){
2004 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();
2005 14 kreverch
                                        labelsFieldZRaid.add(new Label(compositeWidgetDisks, SWT.BORDER|SWT.CENTER));
2006 14 kreverch
                                        labelsFieldZRaid.get(labelsFieldZRaid.size()-1).setLayoutData(gridDataLabelZraid);
2007 14 kreverch
                                        labelsFieldZRaid.get(labelsFieldZRaid.size()-1).setFont(fontSubTitle);
2008 14 kreverch
                                        labelsFieldZRaid.get(labelsFieldZRaid.size()-1).setBackground(labelFieldBackgroundColor);
2009 14 kreverch
                                        labelsFieldZRaid.get(labelsFieldZRaid.size()-1).setText(labelTextZraid);
2010 14 kreverch
                                        labelsFieldZRaid.get(labelsFieldZRaid.size()-1).setData(labelTextZraid);
2011 14 kreverch
                                }
2012 14 kreverch
2013 14 kreverch
2014 14 kreverch
                                for (int cpt=0;cpt<keysPropHashDisks.length;cpt++){
2015 14 kreverch
                                        //log.debug("RefreshDisks "+keysPropHashDisks[cpt] );
2016 14 kreverch
                                        String keyPropHashDisks = keysPropHashDisks[cpt];
2017 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())){
2018 14 kreverch
2019 14 kreverch
                                                labelsFieldDisks.add(new Label(compositeWidgetDisks, SWT.NONE));
2020 14 kreverch
                                                labelsFieldDisks.get(labelsFieldDisks.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
2021 14 kreverch
                                                labelsFieldDisks.get(labelsFieldDisks.size()-1).setFont(fontWidget);
2022 14 kreverch
                                                labelsFieldDisks.get(labelsFieldDisks.size()-1).setBackground(labelFieldBackgroundColor);
2023 14 kreverch
2024 14 kreverch
                                                if (!"0".equalsIgnoreCase(zfs.getHashDisks().get(keyPropHashDisks).zProperties.get("errorread").getValue()) ||
2025 14 kreverch
                                                                !"0".equalsIgnoreCase(zfs.getHashDisks().get(keyPropHashDisks).zProperties.get("errorwrite").getValue()) ||
2026 14 kreverch
                                                                !"0".equalsIgnoreCase(zfs.getHashDisks().get(keyPropHashDisks).zProperties.get("errorchecksum").getValue())||
2027 14 kreverch
                                                                (!"".equalsIgnoreCase(zfs.getHashDisks().get(keyPropHashDisks).zProperties.get("smarthealthstatus").getValue()) &&
2028 14 kreverch
                                                                                !"OK".equalsIgnoreCase(zfs.getHashDisks().get(keyPropHashDisks).zProperties.get("smarthealthstatus").getValue()))
2029 14 kreverch
                                                                ){
2030 14 kreverch
                                                        labelsFieldDisks.get(labelsFieldDisks.size()-1).setImage(imageHardDiskOffline);
2031 14 kreverch
                                                }else{
2032 14 kreverch
                                                        labelsFieldDisks.get(labelsFieldDisks.size()-1).setImage(imageHardDiskOnline);
2033 14 kreverch
                                                }
2034 14 kreverch
2035 14 kreverch
                                                //labelsFieldZRaid.get(labelsFieldZRaid.size()-1).setData(labelTextZraid);
2036 14 kreverch
                                                String[] keysProp = (String[]) zfs.getHashDisks().get(keyPropHashDisks).zProperties.keySet().toArray(new String[0]);
2037 14 kreverch
                                                Arrays.sort(keysProp);
2038 14 kreverch
                                                String valueProp="";
2039 14 kreverch
2040 14 kreverch
                                                for (int i = 0; i < keysProp.length; i++) {
2041 14 kreverch
                                                        keyProp = keysProp[i];
2042 14 kreverch
                                                        if ( "noupdateable".equalsIgnoreCase(zfs.getHashDisks().get(keyPropHashDisks).zProperties.get(keyProp).getType()) ){
2043 14 kreverch
                                                                valueProp = valueProp+zfs.getHashDisks().get(keyPropHashDisks).zProperties.get(keyProp).getLabelProperty()+" :"+zfs.getHashDisks().get(keyPropHashDisks).zProperties.get(keyProp).getValue()+"\n";
2044 14 kreverch
                                                        }
2045 14 kreverch
                                                }
2046 14 kreverch
                                                labelsFieldDisks.get(labelsFieldDisks.size()-1).setToolTipText(valueProp);
2047 14 kreverch
                                                //log.debug(valueProp);
2048 14 kreverch
                                        }
2049 14 kreverch
2050 14 kreverch
                                }
2051 14 kreverch
                        }
2052 14 kreverch
2053 14 kreverch
                }
2054 14 kreverch
                scrolledDisks.setContent(compositeWidgetDisks);
2055 14 kreverch
                scrolledDisks.setExpandVertical(true);
2056 14 kreverch
                scrolledDisks.setExpandHorizontal(true);
2057 14 kreverch
                scrolledDisks.setMinSize(compositeWidgetDisks.computeSize(SWT.DEFAULT,SWT.DEFAULT));
2058 14 kreverch
2059 14 kreverch
                scrolledDisks.layout();
2060 14 kreverch
                groupDisks.layout();
2061 14 kreverch
                compositeWidgetDisks.layout();
2062 14 kreverch
                compositeDisks.layout();
2063 14 kreverch
                tabFolderConfig.layout();
2064 14 kreverch
2065 14 kreverch
        }
2066 14 kreverch
2067 14 kreverch
2068 14 kreverch
        private void  refreshCreateZfsVolFS(){
2069 14 kreverch
2070 14 kreverch
                String[] keysProp = (String[]) zfs.getZvol().zProperties.keySet().toArray(new String[0]);
2071 14 kreverch
                Arrays.sort(keysProp);
2072 14 kreverch
                log.debug("Label SIze "+labelsFieldCreateVol.size());
2073 14 kreverch
                for ( int cptL=0;cptL<labelsFieldCreateVol.size();cptL++){
2074 14 kreverch
                        labelsFieldCreateVol.get(cptL).dispose();
2075 14 kreverch
2076 14 kreverch
                }
2077 14 kreverch
                for ( int cptL=0;cptL<textsFieldCreateVol.size();cptL++){
2078 14 kreverch
                        textsFieldCreateVol.get(cptL).dispose();
2079 14 kreverch
                }
2080 14 kreverch
                for ( int cptL=0;cptL<combosFieldCreateVol.size();cptL++){
2081 14 kreverch
                        combosFieldCreateVol.get(cptL).dispose();
2082 14 kreverch
                }
2083 14 kreverch
                labelsFieldCreateVol.clear();
2084 14 kreverch
                textsFieldCreateVol.clear();
2085 14 kreverch
                combosFieldCreateVol.clear();
2086 14 kreverch
                if (btnCreateZfsVolFS!=null && !btnCreateZfsVolFS.isDisposed()){
2087 14 kreverch
                        btnCreateZfsVolFS.dispose();
2088 14 kreverch
                }
2089 14 kreverch
                if (groupCreateVolFS !=null && !groupCreateVolFS.isDisposed()){
2090 14 kreverch
                        groupCreateVolFS.dispose();
2091 14 kreverch
                }
2092 14 kreverch
                if (scrolledCreateVol !=null &&!scrolledCreateVol.isDisposed()){
2093 14 kreverch
                        scrolledCreateVol.dispose();
2094 14 kreverch
                }
2095 14 kreverch
                if (compositeWidgetCreateVolFS!=null && !compositeWidgetCreateVolFS.isDisposed()){
2096 14 kreverch
                        compositeWidgetCreateVolFS.dispose();
2097 14 kreverch
                }
2098 14 kreverch
2099 14 kreverch
2100 14 kreverch
2101 14 kreverch
2102 14 kreverch
                groupCreateVolFS=new Group(compositeCreateVolFS,SWT.NONE);
2103 14 kreverch
                groupCreateVolFS.setBackground(groupBackgroundColor);
2104 14 kreverch
                groupCreateVolFS.setLayout(new GridLayout());
2105 14 kreverch
                //GridData gridData=new GridData(GridData.FILL_HORIZONTAL);
2106 14 kreverch
                GridData gridData=new GridData(SWT.FILL, SWT.FILL, true, true);
2107 14 kreverch
                //gridData.heightHint=450;
2108 14 kreverch
                groupCreateVolFS.setLayoutData(gridData);
2109 14 kreverch
                scrolledCreateVol=new ScrolledComposite(groupCreateVolFS,SWT.V_SCROLL);
2110 14 kreverch
                scrolledCreateVol.setLayoutData(new GridData(GridData.FILL_BOTH));
2111 14 kreverch
                compositeWidgetCreateVolFS=new Composite(scrolledCreateVol,SWT.NONE);
2112 14 kreverch
                compositeWidgetCreateVolFS.setBackground(compositeBackgroundColor);
2113 14 kreverch
                GridLayout gridLayoutPane = new GridLayout();
2114 14 kreverch
                gridLayoutPane.numColumns =2;
2115 14 kreverch
                compositeWidgetCreateVolFS.setLayout(gridLayoutPane);
2116 14 kreverch
2117 14 kreverch
                GridData gridDataTitle = new GridData(GridData.FILL, GridData.CENTER, true, false);
2118 14 kreverch
                gridDataTitle.horizontalSpan = 2;
2119 14 kreverch
                Label lblTitle = new Label(compositeWidgetCreateVolFS, SWT.CENTER|SWT.BORDER);
2120 14 kreverch
                lblTitle.setLayoutData(gridDataTitle);
2121 14 kreverch
                lblTitle.setFont(fontTitle);
2122 14 kreverch
                lblTitle.setBackground(labelTitleBackgroundColor);
2123 14 kreverch
                lblTitle.setText("Create a ZFS Volume or ZFS FileSystem");
2124 14 kreverch
2125 14 kreverch
2126 14 kreverch
2127 14 kreverch
                labelsFieldCreateVol.add(new Label(compositeWidgetCreateVolFS, SWT.NONE));
2128 14 kreverch
                labelsFieldCreateVol.get(labelsFieldCreateVol.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
2129 14 kreverch
                labelsFieldCreateVol.get(labelsFieldCreateVol.size()-1).setBackground(labelFieldBackgroundColor);
2130 14 kreverch
                labelsFieldCreateVol.get(labelsFieldCreateVol.size()-1).setText(zfs.getZvol().zProperties.get("type").getLabelProperty());
2131 14 kreverch
                labelsFieldCreateVol.get(labelsFieldCreateVol.size()-1).setData(zfs.getZvol().zProperties.get("type").getNameProperty());
2132 14 kreverch
2133 14 kreverch
                combosFieldCreateVol.add(new Combo(compositeWidgetCreateVolFS, SWT.NONE));
2134 14 kreverch
                combosFieldCreateVol.get(combosFieldCreateVol.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
2135 14 kreverch
                combosFieldCreateVol.get(combosFieldCreateVol.size()-1).setData(zfs.getZvol().zProperties.get("type").getNameProperty());
2136 14 kreverch
                String[] keysPermitValue = (String[]) zfs.getZvol().zProperties.get("type").getPermitValue().keySet().toArray(new String[0]);
2137 14 kreverch
                for (int cpt=0;cpt <zfs.getZvol().zProperties.get("type").getPermitValue().size();cpt++){
2138 14 kreverch
                        String keyPermitValue = keysPermitValue[cpt];
2139 14 kreverch
                        combosFieldCreateVol.get(combosFieldCreateVol.size()-1).add(zfs.getZvol().zProperties.get("type").getPermitValue().get(keyPermitValue).toString());
2140 14 kreverch
                }
2141 14 kreverch
2142 14 kreverch
                combosFieldCreateVol.get(combosFieldCreateVol.size()-1).setText(zfs.getZvol().zProperties.get("type").getValue());
2143 14 kreverch
                //zfs.getZvol().zProperties.get("type").setValue(zfs.getZvol().zProperties.get("type").getPermitValue().get("volume").toString());
2144 14 kreverch
                combosFieldCreateVol.get(combosFieldCreateVol.size()-1).addListener(SWT.Selection, new Listener() {
2145 14 kreverch
2146 14 kreverch
                        public void handleEvent(final Event event) {
2147 14 kreverch
                                final Combo comboType = (Combo) event.widget;
2148 14 kreverch
2149 14 kreverch
2150 14 kreverch
                                zfs.getZvol().zProperties.get("type").setValue(comboType.getText());
2151 14 kreverch
                                refreshCreateZfsVolFS();
2152 14 kreverch
                                compositeWidgetCreateVolFS.layout();
2153 14 kreverch
                                compositeCreateVolFS.layout();
2154 14 kreverch
2155 14 kreverch
                                log.debug(combosFieldCreateVol.size());
2156 14 kreverch
                        }
2157 14 kreverch
                });
2158 14 kreverch
2159 14 kreverch
                labelsFieldCreateVol.add(new Label(compositeWidgetCreateVolFS, SWT.NONE));
2160 14 kreverch
                labelsFieldCreateVol.get(labelsFieldCreateVol.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
2161 14 kreverch
                labelsFieldCreateVol.get(labelsFieldCreateVol.size()-1).setBackground(labelFieldBackgroundColor);
2162 14 kreverch
                labelsFieldCreateVol.get(labelsFieldCreateVol.size()-1).setText(zfs.getZvol().zProperties.get("name").getLabelProperty());
2163 14 kreverch
                labelsFieldCreateVol.get(labelsFieldCreateVol.size()-1).setData(zfs.getZvol().zProperties.get("name").getNameProperty());
2164 14 kreverch
2165 14 kreverch
                textsFieldCreateVol.add(new Text(compositeWidgetCreateVolFS, SWT.WRAP|SWT.BORDER));
2166 14 kreverch
                textsFieldCreateVol.get(textsFieldCreateVol.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
2167 14 kreverch
                textsFieldCreateVol.get(textsFieldCreateVol.size()-1).setData(zfs.getZvol().zProperties.get("name").getNameProperty());
2168 14 kreverch
                textsFieldCreateVol.get(textsFieldCreateVol.size()-1).setText("");
2169 14 kreverch
2170 14 kreverch
                for (int i = 0; i < keysProp.length; i++) {
2171 14 kreverch
                        keyProp = keysProp[i];
2172 14 kreverch
                        log.debug(keyProp);
2173 14 kreverch
                        if ( ("volume".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue()) &&
2174 14 kreverch
                                        ("volume".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getPropertyOf()) ||
2175 14 kreverch
                                                        "volandfs".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getPropertyOf())) ) ||
2176 14 kreverch
                                                        ("filesystem".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue()) &&
2177 14 kreverch
                                                                        ("fs".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getPropertyOf()) ||
2178 14 kreverch
                                                                                        "volandfs".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getPropertyOf()) ) )
2179 14 kreverch
                                                                                        || ("snapshot".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue()) && "volandfs".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getPropertyOf()))
2180 14 kreverch
2181 14 kreverch
                                        ){
2182 14 kreverch
                                log.debug("DEBUG : "+ keyProp+ " "+zfs.getZvol().zProperties.get(keyProp).getType());
2183 14 kreverch
                                if ( "freeentry".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getType()) ||keyProp =="volblocksize"){
2184 14 kreverch
                                        labelsFieldCreateVol.add(new Label(compositeWidgetCreateVolFS, SWT.NONE));
2185 14 kreverch
                                        labelsFieldCreateVol.get(labelsFieldCreateVol.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
2186 14 kreverch
                                        labelsFieldCreateVol.get(labelsFieldCreateVol.size()-1).setBackground(labelFieldBackgroundColor);
2187 14 kreverch
                                        labelsFieldCreateVol.get(labelsFieldCreateVol.size()-1).setText(zfs.getZvol().zProperties.get(keyProp).getLabelProperty());
2188 14 kreverch
                                        labelsFieldCreateVol.get(labelsFieldCreateVol.size()-1).setData(zfs.getZvol().zProperties.get(keyProp).getNameProperty());
2189 14 kreverch
2190 14 kreverch
                                        textsFieldCreateVol.add(new Text(compositeWidgetCreateVolFS, SWT.WRAP|SWT.BORDER));
2191 14 kreverch
                                        textsFieldCreateVol.get(textsFieldCreateVol.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
2192 14 kreverch
                                        textsFieldCreateVol.get(textsFieldCreateVol.size()-1).setText(zfs.getZvol().zProperties.get(keyProp).getValue());
2193 14 kreverch
                                        textsFieldCreateVol.get(textsFieldCreateVol.size()-1).setData(zfs.getZvol().zProperties.get(keyProp).getNameProperty());
2194 14 kreverch
2195 14 kreverch
                                }else{
2196 14 kreverch
2197 14 kreverch
                                        if ( "nofreeentry".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getType()) && !"type".equals(keyProp)){
2198 14 kreverch
                                                labelsFieldCreateVol.add(new Label(compositeWidgetCreateVolFS, SWT.NONE));
2199 14 kreverch
                                                labelsFieldCreateVol.get(labelsFieldCreateVol.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
2200 14 kreverch
                                                labelsFieldCreateVol.get(labelsFieldCreateVol.size()-1).setBackground(labelFieldBackgroundColor);
2201 14 kreverch
                                                labelsFieldCreateVol.get(labelsFieldCreateVol.size()-1).setText(zfs.getZvol().zProperties.get(keyProp).getLabelProperty());
2202 14 kreverch
                                                labelsFieldCreateVol.get(labelsFieldCreateVol.size()-1).setData(zfs.getZvol().zProperties.get(keyProp).getNameProperty());
2203 14 kreverch
2204 14 kreverch
                                                combosFieldCreateVol.add(new Combo(compositeWidgetCreateVolFS, SWT.NONE));
2205 14 kreverch
                                                combosFieldCreateVol.get(combosFieldCreateVol.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
2206 14 kreverch
                                                combosFieldCreateVol.get(combosFieldCreateVol.size()-1).setData(zfs.getZvol().zProperties.get(keyProp).getNameProperty());
2207 14 kreverch
                                                combosFieldCreateVol.get(combosFieldCreateVol.size()-1).setText(zfs.getZvol().zProperties.get(keyProp).getValue());
2208 14 kreverch
                                                keysPermitValue = (String[]) zfs.getZvol().zProperties.get(keyProp).getPermitValue().keySet().toArray(new String[0]);
2209 14 kreverch
                                                for (int cpt=0;cpt <zfs.getZvol().zProperties.get(keyProp).getPermitValue().size();cpt++){
2210 14 kreverch
                                                        String keyPermitValue = keysPermitValue[cpt];
2211 14 kreverch
                                                        combosFieldCreateVol.get(combosFieldCreateVol.size()-1).add(zfs.getZvol().zProperties.get(keyProp).getPermitValue().get(keyPermitValue).toString());
2212 14 kreverch
                                                }
2213 14 kreverch
                                        }
2214 14 kreverch
2215 14 kreverch
                                }
2216 14 kreverch
2217 14 kreverch
                        }
2218 14 kreverch
2219 14 kreverch
                }
2220 14 kreverch
2221 14 kreverch
2222 14 kreverch
                scrolledCreateVol.setContent(compositeWidgetCreateVolFS);
2223 14 kreverch
                scrolledCreateVol.setExpandVertical(true);
2224 14 kreverch
                scrolledCreateVol.setExpandHorizontal(true);
2225 14 kreverch
                scrolledCreateVol.setMinSize(compositeWidgetCreateVolFS.computeSize(SWT.DEFAULT,SWT.DEFAULT));
2226 14 kreverch
2227 14 kreverch
2228 14 kreverch
                if (groupActiveIscsi!=null && !groupActiveIscsi.isDisposed() ){
2229 14 kreverch
                        groupActiveIscsi.dispose();
2230 14 kreverch
                }
2231 14 kreverch
                if  ("volume".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue())){
2232 14 kreverch
                        groupActiveIscsi=new Group(compositeCreateVolFS,SWT.NONE);
2233 14 kreverch
                        groupActiveIscsi.setBackground(groupBackgroundColor);
2234 14 kreverch
                        groupActiveIscsi.setLayout(new GridLayout());
2235 14 kreverch
                        GridLayout gridLayoutActiveIscsi = new GridLayout();
2236 14 kreverch
                        gridLayoutActiveIscsi.numColumns =2;
2237 14 kreverch
                        groupActiveIscsi.setLayout(gridLayoutActiveIscsi);
2238 14 kreverch
                        //GridData gridDataActiveIscsi=new GridData(GridData.FILL_HORIZONTAL);
2239 14 kreverch
                        GridData gridDataActiveIscsi=new GridData(SWT.FILL, SWT.FILL, true, true);
2240 14 kreverch
                        //gridDataActiveIscsi.heightHint=200;
2241 14 kreverch
                        groupActiveIscsi.setLayoutData(gridDataActiveIscsi);
2242 14 kreverch
2243 14 kreverch
                        GridData gridDataTitleIscsi = new GridData(GridData.FILL, GridData.CENTER, true, false);
2244 14 kreverch
                        gridDataTitleIscsi.horizontalSpan = 2;
2245 14 kreverch
                        //Iscsi Section
2246 14 kreverch
                        Label lblTitleIscsi = new Label(groupActiveIscsi, SWT.CENTER|SWT.BORDER);
2247 14 kreverch
                        lblTitleIscsi.setLayoutData(gridDataTitleIscsi);
2248 14 kreverch
                        lblTitleIscsi.setFont(fontTitle);
2249 14 kreverch
                        lblTitleIscsi.setBackground(labelTitleBackgroundColor);
2250 14 kreverch
                        lblTitleIscsi.setText("ISCSI Parameters");
2251 14 kreverch
                        keysProp = (String[]) zfs.getZiscsi().zProperties.keySet().toArray(new String[0]);
2252 14 kreverch
                        Arrays.sort(keysProp);
2253 14 kreverch
                        labelsFieldCreateIscsi.clear();
2254 14 kreverch
                        textsFieldCreateIscsi.clear();
2255 14 kreverch
                        combosFieldCreateIscsi.clear();
2256 14 kreverch
                        for (int i = 0; i < keysProp.length; i++) {
2257 14 kreverch
                                keyProp = keysProp[i];
2258 14 kreverch
2259 14 kreverch
2260 14 kreverch
                                if ( "noupdateable".equalsIgnoreCase(zfs.getZiscsi().zProperties.get(keyProp).getType())) {
2261 14 kreverch
                                        Label lbl = new Label(groupActiveIscsi, SWT.NONE);
2262 14 kreverch
                                        lbl.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
2263 14 kreverch
                                        lbl.setText(zfs.getZiscsi().zProperties.get(keyProp).getLabelProperty());
2264 14 kreverch
                                        lbl.setFont(fontWidget);
2265 14 kreverch
                                        lbl.setBackground(labelFieldBackgroundColor);
2266 14 kreverch
                                        labelsFieldCreateIscsi.add(new Label(groupActiveIscsi, SWT.NONE));
2267 14 kreverch
                                        labelsFieldCreateIscsi.get(labelsFieldCreateIscsi.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
2268 14 kreverch
                                        labelsFieldCreateIscsi.get(labelsFieldCreateIscsi.size()-1).setBackground(labelFieldBackgroundColor);
2269 14 kreverch
                                        //labelsField.get(labelsField.size()-1).setText(zfs.getZiscsi().zProperties.get(keyProp).getNameProperty());
2270 14 kreverch
                                        labelsFieldCreateIscsi.get(labelsFieldCreateIscsi.size()-1).setData(zfs.getZiscsi().zProperties.get(keyProp).getNameProperty());
2271 14 kreverch
                                }else{
2272 14 kreverch
                                        if ( "freeentry".equalsIgnoreCase(zfs.getZiscsi().zProperties.get(keyProp).getType())){
2273 14 kreverch
                                                Label lbl = new Label(groupActiveIscsi, SWT.NONE);
2274 14 kreverch
                                                lbl.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
2275 14 kreverch
                                                lbl.setText(zfs.getZiscsi().zProperties.get(keyProp).getLabelProperty());
2276 14 kreverch
                                                lbl.setFont(fontWidget);
2277 14 kreverch
                                                lbl.setBackground(labelFieldBackgroundColor);
2278 14 kreverch
2279 14 kreverch
                                                textsFieldCreateIscsi.add(new Text(groupActiveIscsi, SWT.WRAP|SWT.BORDER));
2280 14 kreverch
                                                textsFieldCreateIscsi.get(textsFieldCreateIscsi.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
2281 14 kreverch
                                                textsFieldCreateIscsi.get(textsFieldCreateIscsi.size()-1).setBackground(textFieldBackgroundColor);
2282 14 kreverch
                                                //textsField.get(textsField.size()-1).setText(zfs.getZiscsi().zProperties.get(keyProp).getNameProperty());
2283 14 kreverch
                                                textsFieldCreateIscsi.get(textsFieldCreateIscsi.size()-1).setData(zfs.getZiscsi().zProperties.get(keyProp).getNameProperty());
2284 14 kreverch
2285 14 kreverch
                                        }else{
2286 14 kreverch
2287 14 kreverch
                                                if ( "nofreeentry".equalsIgnoreCase(zfs.getZiscsi().zProperties.get(keyProp).getType())){
2288 14 kreverch
                                                        Label lbl = new Label(groupActiveIscsi, SWT.NONE);
2289 14 kreverch
                                                        lbl.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
2290 14 kreverch
                                                        lbl.setText(zfs.getZiscsi().zProperties.get(keyProp).getLabelProperty());
2291 14 kreverch
                                                        lbl.setFont(fontWidget);
2292 14 kreverch
                                                        lbl.setBackground(labelFieldBackgroundColor);
2293 14 kreverch
2294 14 kreverch
                                                        combosFieldCreateIscsi.add(new Combo(groupActiveIscsi, SWT.NONE));
2295 14 kreverch
                                                        combosFieldCreateIscsi.get(combosFieldCreateIscsi.size()-1).setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
2296 14 kreverch
                                                        combosFieldCreateIscsi.get(combosFieldCreateIscsi.size()-1).setData(zfs.getZiscsi().zProperties.get(keyProp).getNameProperty());
2297 14 kreverch
                                                        //combosField.get(combosField.size()-1).setText(zfs.getZiscsi().zProperties.get(keyProp).getValue());
2298 14 kreverch
                                                        keysPermitValue = (String[]) zfs.getZiscsi().zProperties.get(keyProp).getPermitValue().keySet().toArray(new String[0]);
2299 14 kreverch
                                                        for (int cpt=0;cpt <zfs.getZiscsi().zProperties.get(keyProp).getPermitValue().size();cpt++){
2300 14 kreverch
                                                                String keyPermitValue = keysPermitValue[cpt];
2301 14 kreverch
                                                                combosFieldCreateIscsi.get(combosFieldCreateIscsi.size()-1).add(zfs.getZiscsi().zProperties.get(keyProp).getPermitValue().get(keyPermitValue).toString());
2302 14 kreverch
                                                        }
2303 14 kreverch
                                                }
2304 14 kreverch
                                        }
2305 14 kreverch
2306 14 kreverch
                                }
2307 14 kreverch
                                log.debug("DEBUG : "+ keyProp+ " "+zfs.getZiscsi().zProperties.get(keyProp).getType());
2308 14 kreverch
2309 14 kreverch
                        }
2310 14 kreverch
2311 14 kreverch
                }
2312 14 kreverch
                btnCreateZfsVolFS = new Button(compositeCreateVolFS, SWT.None);
2313 14 kreverch
                GridData gridDataBtnCreateZfsVolFS = new GridData(GridData.FILL, GridData.CENTER, true, false);
2314 14 kreverch
                gridDataBtnCreateZfsVolFS.horizontalSpan = 2;
2315 14 kreverch
                btnCreateZfsVolFS.setLayoutData(gridDataBtnCreateZfsVolFS);
2316 14 kreverch
                btnCreateZfsVolFS.setText("Create Now");
2317 14 kreverch
                btnCreateZfsVolFS.addListener(SWT.Selection, new Listener() {
2318 14 kreverch
2319 14 kreverch
                        public void handleEvent(final Event event) {
2320 14 kreverch
2321 14 kreverch
                                for (int indText=0;indText<textsFieldCreateVol.size();indText++){
2322 14 kreverch
                                        if (textsFieldCreateVol.get(indText).getData().toString().equals("name")){
2323 14 kreverch
                                                zfs.getZvol().zProperties.get("name").setValue(textsFieldCreateVol.get(indText).getText());
2324 14 kreverch
                                        }
2325 14 kreverch
                                }
2326 14 kreverch
                                if (! zfs.getZvol().zProperties.get("name").getValue().equalsIgnoreCase("") ){
2327 14 kreverch
                                        String[] keysProp = (String[]) zfs.getZvol().zProperties.keySet().toArray(new String[0]);
2328 14 kreverch
                                        Arrays.sort(keysProp);
2329 14 kreverch
                                        for (int i = 0; i < keysProp.length; i++) {
2330 14 kreverch
                                                keyProp = keysProp[i];
2331 14 kreverch
                                                log.debug(keyProp);
2332 14 kreverch
                                                if ( ("volume".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue()) &&
2333 14 kreverch
                                                                ("volume".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getPropertyOf()) ||
2334 14 kreverch
                                                                                "volandfs".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getPropertyOf())) ) ||
2335 14 kreverch
                                                                                ("filesystem".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue()) &&
2336 14 kreverch
                                                                                                ("fs".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getPropertyOf()) ||
2337 14 kreverch
                                                                                                                "volandfs".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getPropertyOf()) ) )
2338 14 kreverch
                                                                                                                || ("snapshot".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue()) && "volandfs".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getPropertyOf()))
2339 14 kreverch
2340 14 kreverch
                                                                ){
2341 14 kreverch
                                                        log.debug("DEBUG : "+ keyProp+ " "+zfs.getZvol().zProperties.get(keyProp).getType());
2342 14 kreverch
                                                        if ( "freeentry".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getType()) ||keyProp =="volblocksize"){
2343 14 kreverch
                                                                for (int indText=0;indText<textsFieldCreateVol.size();indText++){
2344 14 kreverch
                                                                        if ( textsFieldCreateVol.get(indText).getData().equals(keyProp) ){
2345 14 kreverch
                                                                                zfs.getZvol().zProperties.get(keyProp).setValue(textsFieldCreateVol.get(indText).getText());
2346 14 kreverch
                                                                        }
2347 14 kreverch
                                                                }
2348 14 kreverch
                                                        }else{
2349 14 kreverch
2350 14 kreverch
                                                                if ( "nofreeentry".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getType()) && !"type".equals(keyProp)){
2351 14 kreverch
                                                                        for (int indCombo=0;indCombo<combosFieldCreateVol.size();indCombo++){
2352 14 kreverch
                                                                                if ( combosFieldCreateVol.get(indCombo).getData().equals(keyProp) ){
2353 14 kreverch
                                                                                        zfs.getZvol().zProperties.get(keyProp).setValue(combosFieldCreateVol.get(indCombo).getText());
2354 14 kreverch
                                                                                }
2355 14 kreverch
                                                                        }
2356 14 kreverch
                                                                }
2357 14 kreverch
                                                        }
2358 14 kreverch
                                                }
2359 14 kreverch
                                        }
2360 14 kreverch
2361 14 kreverch
                                        thrCreateZFSVol = new Thread(new Runnable(){
2362 14 kreverch
                                                public void run() {
2363 14 kreverch
                                                        Display.getDefault().syncExec(new Runnable() {
2364 14 kreverch
                                                                public void run() {
2365 14 kreverch
                                                                        if (wPB.s.isDisposed()){
2366 14 kreverch
                                                                                wPB = new guiProgress(shell.getDisplay(), shell.getLocation().x, shell.getLocation().y);
2367 14 kreverch
                                                                                wPB.open();
2368 14 kreverch
                                                                        }else{
2369 14 kreverch
                                                                                wPB.open();
2370 14 kreverch
                                                                        }
2371 14 kreverch
2372 14 kreverch
2373 14 kreverch
                                                                }
2374 14 kreverch
                                                        });
2375 14 kreverch
2376 14 kreverch
                                                        zfs.zfsCreateVolFS();
2377 14 kreverch
                                                        Display.getDefault().syncExec(new Runnable(){
2378 14 kreverch
                                                                public void run(){
2379 14 kreverch
                                                                        String[] keysPropError = zfs.getError().keySet().toArray(new String[0]);
2380 14 kreverch
                                                                        //String[] keysProp = (String[]) zfs.getZserver().zProperties.keySet().toArray(new String[0]);
2381 14 kreverch
                                                                        Arrays.sort(keysPropError);
2382 14 kreverch
                                                                        String textBox = "";
2383 14 kreverch
                                                                        for (int i = 0; i < keysPropError.length; i++) {
2384 14 kreverch
                                                                                String keyPropError = keysPropError[i];
2385 14 kreverch
                                                                                textBox = textBox +zfs.getError().get(keyPropError)+".\n";
2386 14 kreverch
                                                                        }
2387 14 kreverch
                                                                        if (keysPropError.length>0){
2388 14 kreverch
                                                                                MessageBox messageBoxInfo = new MessageBox(shell, SWT.DIALOG_TRIM);
2389 14 kreverch
                                                                                messageBoxInfo.setText("Warning");
2390 14 kreverch
                                                                                messageBoxInfo.setMessage(textBox);
2391 14 kreverch
                                                                                messageBoxInfo.open();
2392 14 kreverch
                                                                                wPB.close();
2393 14 kreverch
                                                                        }else{
2394 14 kreverch
                                                                                if ("volume".equals(zfs.getZvol().zProperties.get("type").getValue())||
2395 14 kreverch
                                                                                                "snapshot".equals(zfs.getZvol().zProperties.get("type").getValue())){
2396 14 kreverch
2397 14 kreverch
                                                                                        String[] keysProp = (String[]) zfs.getZiscsi().zProperties.keySet().toArray(new String[0]);
2398 14 kreverch
                                                                                        Arrays.sort(keysProp);
2399 14 kreverch
2400 14 kreverch
                                                                                        for (int i = 0; i < keysProp.length; i++) {
2401 14 kreverch
                                                                                                keyProp = keysProp[i];
2402 14 kreverch
                                                                                                log.debug("btnCreateIscsi :"+keyProp);
2403 14 kreverch
                                                                                                if ( "noupdateable".equalsIgnoreCase(zfs.getZiscsi().zProperties.get(keyProp).getType())) {
2404 14 kreverch
                                                                                                        for (int indLabel=0;indLabel<labelsFieldCreateIscsi.size();indLabel++){
2405 14 kreverch
                                                                                                                if ( labelsFieldCreateIscsi.get(indLabel).getData().equals(zfs.getZiscsi().zProperties.get(keyProp).getNameProperty()) ){
2406 14 kreverch
                                                                                                                        zfs.getZiscsi().zProperties.get(keyProp).setValue(labelsFieldCreateIscsi.get(indLabel).getText());
2407 14 kreverch
                                                                                                                }
2408 14 kreverch
                                                                                                        }
2409 14 kreverch
                                                                                                }else{
2410 14 kreverch
                                                                                                        if ( "freeentry".equalsIgnoreCase(zfs.getZiscsi().zProperties.get(keyProp).getType())) {
2411 14 kreverch
                                                                                                                for (int indText=0;indText<textsFieldCreateIscsi.size();indText++){
2412 14 kreverch
                                                                                                                        if ( textsFieldCreateIscsi.get(indText).getData().equals(zfs.getZiscsi().zProperties.get(keyProp).getNameProperty()) ){
2413 14 kreverch
                                                                                                                                zfs.getZiscsi().zProperties.get(keyProp).setValue(textsFieldCreateIscsi.get(indText).getText());
2414 14 kreverch
                                                                                                                        }
2415 14 kreverch
                                                                                                                }
2416 14 kreverch
2417 14 kreverch
                                                                                                        }else{
2418 14 kreverch
2419 14 kreverch
                                                                                                                if ( "nofreeentry".equalsIgnoreCase(zfs.getZiscsi().zProperties.get(keyProp).getType())) {
2420 14 kreverch
                                                                                                                        for (int indList=0;indList<combosFieldCreateIscsi.size();indList++){
2421 14 kreverch
                                                                                                                                log.debug("first loop"+combosFieldCreateIscsi.get(indList).getData()+" "+zfs.getZiscsi().zProperties.get(keyProp).getNameProperty());
2422 14 kreverch
2423 14 kreverch
                                                                                                                                if ( combosFieldCreateIscsi.get(indList).getData().equals(zfs.getZiscsi().zProperties.get(keyProp).getNameProperty()) ){
2424 14 kreverch
                                                                                                                                        zfs.getZiscsi().zProperties.get(keyProp).setValue(combosFieldCreateIscsi.get(indList).getText());
2425 14 kreverch
                                                                                                                                        log.debug(zfs.getZiscsi().zProperties.get(keyProp).getMultivalues());
2426 14 kreverch
                                                                                                                                }
2427 14 kreverch
                                                                                                                        }
2428 14 kreverch
                                                                                                                }
2429 14 kreverch
                                                                                                        }
2430 14 kreverch
                                                                                                }
2431 14 kreverch
                                                                                        }
2432 14 kreverch
                                                                                        if ("snapshot".equals(zfs.getZvol().zProperties.get("type").getValue())){
2433 14 kreverch
                                                                                                zfs.getZiscsi().zProperties.get("iomode").setValue("ro");
2434 14 kreverch
                                                                                        }
2435 14 kreverch
                                                                                        zfs.getZiscsi().zProperties.get("name").setValue(zfs.getZpool().zProperties.get("name").getValue()+"/"+zfs.getZvol().zProperties.get("name").getValue());
2436 14 kreverch
                                                                                        zfs.zfsCreateIscsi();
2437 14 kreverch
                                                                                        keysPropError = zfs.getError().keySet().toArray(new String[0]);
2438 14 kreverch
                                                                                        //String[] keysProp = (String[]) zfs.getZserver().zProperties.keySet().toArray(new String[0]);
2439 14 kreverch
                                                                                        Arrays.sort(keysPropError);
2440 14 kreverch
                                                                                        textBox = "";
2441 14 kreverch
                                                                                        for (int i = 0; i < keysPropError.length; i++) {
2442 14 kreverch
                                                                                                String keyPropError = keysPropError[i];
2443 14 kreverch
                                                                                                textBox = textBox +zfs.getError().get(keyPropError)+".\n";
2444 14 kreverch
                                                                                        }
2445 14 kreverch
                                                                                        if (keysPropError.length>0){
2446 14 kreverch
                                                                                                MessageBox messageBoxInfo = new MessageBox(shell, SWT.DIALOG_TRIM);
2447 14 kreverch
                                                                                                messageBoxInfo.setText("Warning");
2448 14 kreverch
                                                                                                messageBoxInfo.setMessage("ZFS Volume created but ISCSI Configuration is failed.\n"+textBox);
2449 14 kreverch
                                                                                                messageBoxInfo.open();
2450 14 kreverch
                                                                                                wPB.close();
2451 14 kreverch
                                                                                        }
2452 14 kreverch
                                                                                }
2453 14 kreverch
2454 14 kreverch
2455 14 kreverch
                                                                                int indRoot=0;
2456 14 kreverch
                                                                                int indItem=0;
2457 14 kreverch
                                                                                for (int indT=0;indT<tree.getItemCount();indT++){
2458 14 kreverch
                                                                                        if (tree.getItem(indT).getData().toString().equals(zfs.getZserver().zProperties.get("serverIP").getValue())){
2459 14 kreverch
                                                                                                for (int indTreeVolFS=0;indTreeVolFS<tree.getItem(indT).getItemCount();indTreeVolFS++){
2460 14 kreverch
                                                                                                        if (tree.getItem(indT).getItem(indTreeVolFS).getData().toString().compareTo(zfs.getZpool().zProperties.get("name").getValue()+"/"+zfs.getZvol().zProperties.get("name").getValue()) >0){
2461 14 kreverch
                                                                                                                if (zfs.getError().size()>0){
2462 14 kreverch
                                                                                                                        updateItemTreeZfsList(false, zfs.getZpool().zProperties.get("name").getValue()+"/"+zfs.getZvol().zProperties.get("name").getValue(), tree.getItem(indT), null ,indTreeVolFS);
2463 14 kreverch
                                                                                                                }else{
2464 14 kreverch
                                                                                                                        updateItemTreeZfsList(true, zfs.getZpool().zProperties.get("name").getValue()+"/"+zfs.getZvol().zProperties.get("name").getValue(), tree.getItem(indT), null ,indTreeVolFS);
2465 14 kreverch
                                                                                                                }
2466 14 kreverch
                                                                                                                indRoot=indT;
2467 14 kreverch
                                                                                                                indItem=indTreeVolFS;
2468 14 kreverch
                                                                                                                break;
2469 14 kreverch
                                                                                                        }
2470 14 kreverch
                                                                                                }
2471 14 kreverch
                                                                                                if ( indItem==0){
2472 14 kreverch
                                                                                                        int indTreeVolFS=tree.getItem(indT).getItemCount();
2473 14 kreverch
                                                                                                        if (zfs.getError().size()>0){
2474 14 kreverch
                                                                                                                updateItemTreeZfsList(false, zfs.getZpool().zProperties.get("name").getValue()+"/"+zfs.getZvol().zProperties.get("name").getValue(), tree.getItem(indT), null ,indTreeVolFS);
2475 14 kreverch
                                                                                                        }else{
2476 14 kreverch
                                                                                                                updateItemTreeZfsList(true, zfs.getZpool().zProperties.get("name").getValue()+"/"+zfs.getZvol().zProperties.get("name").getValue(), tree.getItem(indT), null ,indTreeVolFS);
2477 14 kreverch
                                                                                                        }
2478 14 kreverch
                                                                                                        indRoot=indT;
2479 14 kreverch
                                                                                                        indItem=indTreeVolFS;
2480 14 kreverch
                                                                                                }
2481 14 kreverch
                                                                                                tree.layout();
2482 14 kreverch
                                                                                        }
2483 14 kreverch
                                                                                }
2484 14 kreverch
2485 14 kreverch
                                                                                log.debug("Create Vol ISCI "+zfs.getZvol().zProperties.get("type").getValue());
2486 14 kreverch
                                                                                compositeTabVolConfig.layout();
2487 14 kreverch
                                                                                wPB.close();
2488 14 kreverch
2489 14 kreverch
                                                                                refreshCreateZfsVolFS();
2490 14 kreverch
                                                                        }
2491 14 kreverch
                                                                }
2492 14 kreverch
                                                        });
2493 14 kreverch
                                                }
2494 14 kreverch
                                        });
2495 14 kreverch
                                        thrCreateZFSVol.start();
2496 14 kreverch
                                }
2497 14 kreverch
                        }
2498 14 kreverch
                });
2499 14 kreverch
                compositeCreateVolFS.layout();
2500 14 kreverch
        }
2501 14 kreverch
2502 14 kreverch
        private void refreshIscsiSession(){
2503 14 kreverch
2504 14 kreverch
2505 14 kreverch
                zfs.getIscsiListConfigVol(zfs.getZvol().zProperties.get("name").getValue());
2506 14 kreverch
                log.debug("refreshIscsiSesiont : "+zfs.getZiscsi().zProperties.get("sid").getMultivalues().size());
2507 14 kreverch
2508 14 kreverch
2509 14 kreverch
2510 14 kreverch
                tableIscsiSession.removeAll();
2511 14 kreverch
                for (int i=0;i<zfs.getZiscsi().zProperties.get("sid").getMultivalues().size();i++){
2512 14 kreverch
                        TableItem item = new TableItem(tableIscsiSession, SWT.NONE);
2513 14 kreverch
                        item.setText(0, zfs.getZiscsi().zProperties.get("sid").getMultivalues().get(i).toString());
2514 14 kreverch
                        item.setText(1, zfs.getZiscsi().zProperties.get("sessionIP").getMultivalues().get(i).toString());
2515 14 kreverch
2516 14 kreverch
                }
2517 14 kreverch
                String[] keysProp = (String[]) zfs.getZiscsi().zProperties.keySet().toArray(new String[0]);
2518 14 kreverch
                Arrays.sort(keysProp);
2519 14 kreverch
2520 14 kreverch
                for (int i = 0; i < keysProp.length; i++) {
2521 14 kreverch
                        keyProp = keysProp[i];
2522 14 kreverch
                        if ( "noupdateable".equalsIgnoreCase(zfs.getZiscsi().zProperties.get(keyProp).getType())) {
2523 14 kreverch
                                for (int indLabel=0;indLabel<labelsFieldAddIscsi.size();indLabel++){
2524 14 kreverch
                                        if ( labelsFieldAddIscsi.get(indLabel).getData().equals(zfs.getZiscsi().zProperties.get(keyProp).getNameProperty()) ){
2525 14 kreverch
                                                labelsFieldAddIscsi.get(indLabel).setText(zfs.getZiscsi().zProperties.get(keyProp).getValue());
2526 14 kreverch
                                        }
2527 14 kreverch
                                }
2528 14 kreverch
                        }else{
2529 14 kreverch
                                if ( "freeentry".equalsIgnoreCase(zfs.getZiscsi().zProperties.get(keyProp).getType())) {
2530 14 kreverch
                                        for (int indText=0;indText<textsFieldAddIscsi.size();indText++){
2531 14 kreverch
                                                if ( textsFieldAddIscsi.get(indText).getData().equals(zfs.getZiscsi().zProperties.get(keyProp).getNameProperty()) ){
2532 14 kreverch
                                                        textsFieldAddIscsi.get(indText).setText(zfs.getZiscsi().zProperties.get(keyProp).getValue());
2533 14 kreverch
                                                }
2534 14 kreverch
                                        }
2535 14 kreverch
2536 14 kreverch
                                }else{
2537 14 kreverch
2538 14 kreverch
                                        if ( "nofreeentry".equalsIgnoreCase(zfs.getZiscsi().zProperties.get(keyProp).getType())) {
2539 14 kreverch
                                                for (int indCombo=0;indCombo<combosFieldAddIscsi.size();indCombo++){
2540 14 kreverch
                                                        if ( combosFieldAddIscsi.get(indCombo).getData().equals(zfs.getZiscsi().zProperties.get(keyProp).getNameProperty()) ){
2541 14 kreverch
                                                                combosFieldAddIscsi.get(indCombo).setText(zfs.getZiscsi().zProperties.get(keyProp).getValue());
2542 14 kreverch
                                                        }
2543 14 kreverch
                                                }
2544 14 kreverch
                                        }
2545 14 kreverch
                                }
2546 14 kreverch
                        }
2547 14 kreverch
                }
2548 14 kreverch
        }
2549 14 kreverch
2550 14 kreverch
        private void refreshConfigSnapshot(){
2551 14 kreverch
2552 14 kreverch
                zsnap = zfs;
2553 14 kreverch
                zsnap.getZsnapshotConfig();
2554 14 kreverch
                String[] keysProp = (String[]) zsnap.getZsnapshots().zSchedulerProperties.keySet().toArray(new String[0]);
2555 14 kreverch
                Arrays.sort(keysProp);
2556 14 kreverch
2557 14 kreverch
                for (int i = 0; i < keysProp.length; i++) {
2558 14 kreverch
                        keyProp = keysProp[i];
2559 14 kreverch
                        if ( "noupdateable".equalsIgnoreCase(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getType())) {
2560 14 kreverch
                                for (int indLabel=0;indLabel<labelsFieldSnapshots.size();indLabel++){
2561 14 kreverch
                                        if ( labelsFieldSnapshots.get(indLabel).getData().equals(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getNameProperty()) ){
2562 14 kreverch
                                                labelsFieldSnapshots.get(indLabel).setText(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getValue());
2563 14 kreverch
                                                log.debug("REFRESHConfig 1: ");
2564 14 kreverch
                                        }
2565 14 kreverch
                                }
2566 14 kreverch
                        }else{
2567 14 kreverch
                                if ( "freeentry".equalsIgnoreCase(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getType())) {
2568 14 kreverch
                                        for (int indText=0;indText<textsFieldSnapshots.size();indText++){
2569 14 kreverch
                                                if ( textsFieldSnapshots.get(indText).getData().equals(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getNameProperty()) ){
2570 14 kreverch
                                                        textsFieldSnapshots.get(indText).setText(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getValue());
2571 14 kreverch
                                                        log.debug("REFRESHConfig2 : ");
2572 14 kreverch
                                                }
2573 14 kreverch
                                        }
2574 14 kreverch
2575 14 kreverch
                                }else{
2576 14 kreverch
2577 14 kreverch
                                        if ( "nofreeentry".equalsIgnoreCase(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getType())) {
2578 14 kreverch
                                                for (int indCombo=0;indCombo<listsFieldSnaphots.size();indCombo++){
2579 14 kreverch
                                                        if ( listsFieldSnaphots.get(indCombo).getData().equals(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getNameProperty()) ){
2580 14 kreverch
                                                                //listsFieldSnaphots.get(indCombo).setText(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getValue());
2581 14 kreverch
                                                                labelsFieldSnapshotsValue.get(indCombo).setText("Current values : "+zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getValue());
2582 14 kreverch
                                                                log.debug("REFRESHConfig3 : "+zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getValue());
2583 14 kreverch
2584 14 kreverch
                                                        }
2585 14 kreverch
                                                }
2586 14 kreverch
                                        }
2587 14 kreverch
                                }
2588 14 kreverch
                        }
2589 14 kreverch
                }
2590 14 kreverch
        }
2591 14 kreverch
2592 14 kreverch
        private void refreshConfigReplica(){
2593 14 kreverch
2594 14 kreverch
                //zsnap = zfs;
2595 14 kreverch
                zfs.getZreplicaConfig();
2596 14 kreverch
                String[] keysProp = (String[]) zfs.getZreplicas().zSchedulerProperties.keySet().toArray(new String[0]);
2597 14 kreverch
                Arrays.sort(keysProp);
2598 14 kreverch
2599 14 kreverch
                for (int i = 0; i < keysProp.length; i++) {
2600 14 kreverch
                        keyProp = keysProp[i];
2601 14 kreverch
                        if ( "noupdateable".equalsIgnoreCase(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getType())) {
2602 14 kreverch
                                for (int indLabel=0;indLabel<labelsFieldReplica.size();indLabel++){
2603 14 kreverch
                                        if ( labelsFieldReplica.get(indLabel).getData().equals(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getNameProperty()) ){
2604 14 kreverch
                                                labelsFieldReplica.get(indLabel).setText(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getValue());
2605 14 kreverch
                                                log.debug("REFRESHConfig 1: ");
2606 14 kreverch
                                        }
2607 14 kreverch
                                }
2608 14 kreverch
                        }else{
2609 14 kreverch
                                if ( "freeentry".equalsIgnoreCase(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getType())) {
2610 14 kreverch
                                        for (int indText=0;indText<textsFieldReplica.size();indText++){
2611 14 kreverch
                                                if ( textsFieldReplica.get(indText).getData().equals(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getNameProperty()) ){
2612 14 kreverch
                                                        textsFieldReplica.get(indText).setText(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getValue());
2613 14 kreverch
                                                        log.debug("REFRESHConfig2 : ");
2614 14 kreverch
                                                }
2615 14 kreverch
                                        }
2616 14 kreverch
2617 14 kreverch
                                }else{
2618 14 kreverch
2619 14 kreverch
                                        if ( "nofreeentry".equalsIgnoreCase(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getType())&& zfs.getZreplicas().zSchedulerProperties.get(keyProp).getPermitValue() !=null) {
2620 14 kreverch
                                                for (int indCombo=0;indCombo<listsFieldReplica.size();indCombo++){
2621 14 kreverch
                                                        if ( listsFieldReplica.get(indCombo).getData().equals(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getNameProperty()) ){
2622 14 kreverch
                                                                //listsFieldSnaphots.get(indCombo).setText(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getValue());
2623 14 kreverch
                                                                labelsFieldReplicaValue.get(indCombo).setText("Current values : "+zfs.getZreplicas().zSchedulerProperties.get(keyProp).getValue());
2624 14 kreverch
                                                                log.debug("REFRESHConfig3 : "+zfs.getZreplicas().zSchedulerProperties.get(keyProp).getValue());
2625 14 kreverch
2626 14 kreverch
                                                        }
2627 14 kreverch
                                                }
2628 14 kreverch
                                        }
2629 14 kreverch
                                        if ( "nofreeentry".equalsIgnoreCase(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getType())&& zfs.getZreplicas().zSchedulerProperties.get(keyProp).getPermitValue() ==null) {
2630 14 kreverch
                                                for (int indCombo=0;indCombo<combosFieldReplica.size();indCombo++){
2631 14 kreverch
2632 14 kreverch
                                                        if (keyProp.equalsIgnoreCase("server")){
2633 14 kreverch
                                                                for (int indLabel=0;indLabel<labelsFieldReplica.size();indLabel++){
2634 14 kreverch
                                                                        if ( labelsFieldReplica.get(indLabel).getData().equals(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getNameProperty()) ){
2635 14 kreverch
                                                                                labelsFieldReplica.get(indLabel).setText(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getValue());
2636 14 kreverch
                                                                                log.debug("REFRESHConfig 1: ");
2637 14 kreverch
                                                                        }
2638 14 kreverch
                                                                }
2639 14 kreverch
2640 14 kreverch
                                                                if ( combosFieldReplica.get(indCombo).getData().equals(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getNameProperty()) ){
2641 14 kreverch
                                                                        combosFieldReplica.get(indCombo).removeAll();
2642 14 kreverch
                                                                        String[] keysPropSrv = (String[]) zfs.getCacheSession().keySet().toArray(new String[0]);
2643 14 kreverch
                                                                        Arrays.sort(keysPropSrv);
2644 14 kreverch
                                                                        for (int cptSrv=0;cptSrv<keysPropSrv.length;cptSrv++){
2645 14 kreverch
                                                                                String keyPropSrv=keysPropSrv[cptSrv];
2646 14 kreverch
                                                                                combosFieldReplica.get(indCombo).add(keyPropSrv);
2647 14 kreverch
                                                                        }
2648 14 kreverch
                                                                        //listsFieldSnaphots.get(indCombo).setText(zsnap.getZsnapshots().zSchedulerProperties.get(keyProp).getValue());
2649 14 kreverch
                                                                        //combosFieldReplica.get(indCombo).setText("Current values : "+zfs.getZreplicas().zSchedulerProperties.get(keyProp).getValue());
2650 14 kreverch
                                                                        log.debug("REFRESHConfig3 : "+zfs.getZreplicas().zSchedulerProperties.get(keyProp).getValue());
2651 14 kreverch
                                                                        combosFieldReplica.get(indCombo).setText(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getValue());
2652 14 kreverch
                                                                }
2653 14 kreverch
                                                        }else{
2654 14 kreverch
                                                                if ( combosFieldReplica.get(indCombo).getData().equals(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getNameProperty()) ){
2655 14 kreverch
                                                                        combosFieldReplica.get(indCombo).setText(zfs.getZreplicas().zSchedulerProperties.get(keyProp).getValue());
2656 14 kreverch
                                                                }
2657 14 kreverch
                                                        }
2658 14 kreverch
                                                }
2659 14 kreverch
2660 14 kreverch
                                        }
2661 14 kreverch
                                }
2662 14 kreverch
                        }
2663 14 kreverch
                }
2664 14 kreverch
        }
2665 14 kreverch
2666 14 kreverch
2667 14 kreverch
2668 14 kreverch
        private void refreshConfigVolume(){
2669 14 kreverch
2670 14 kreverch
                String[] keysProp = (String[]) zfs.getZvol().zProperties.keySet().toArray(new String[0]);
2671 14 kreverch
                Arrays.sort(keysProp);
2672 14 kreverch
2673 14 kreverch
                if ( "snapshot".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue())) {
2674 14 kreverch
                        for (int i=0;i<keysProp.length;i++){
2675 14 kreverch
                                keyProp = keysProp[i];
2676 14 kreverch
                                for (int indLabel=0;indLabel<labelsField.size();indLabel++){
2677 14 kreverch
                                        if ( labelsField.get(indLabel).getData().equals(zfs.getZvol().zProperties.get(keyProp).getNameProperty()) ){
2678 14 kreverch
                                                labelsField.get(indLabel).setText(zfs.getZvol().zProperties.get(keyProp).getValue());
2679 14 kreverch
                                        }
2680 14 kreverch
                                }
2681 14 kreverch
                        }
2682 14 kreverch
                }else{
2683 14 kreverch
                        for (int i=0;i<keysProp.length;i++){
2684 14 kreverch
                                keyProp = keysProp[i];
2685 14 kreverch
                                if ( "noupdateable".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getType())) {
2686 14 kreverch
                                        for (int indLabel=0;indLabel<labelsField.size();indLabel++){
2687 14 kreverch
                                                if ( labelsField.get(indLabel).getData().equals(zfs.getZvol().zProperties.get(keyProp).getNameProperty())){
2688 14 kreverch
                                                        labelsField.get(indLabel).setText(zfs.getZvol().zProperties.get(keyProp).getValue());
2689 14 kreverch
                                                }
2690 14 kreverch
2691 14 kreverch
                                        }
2692 14 kreverch
                                }else{
2693 14 kreverch
                                        if ( "freeentry".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getType())) {
2694 14 kreverch
                                                for (int indText=0;indText<textsField.size();indText++){
2695 14 kreverch
                                                        if ( textsField.get(indText).getData().equals(zfs.getZvol().zProperties.get(keyProp).getNameProperty()) ){
2696 14 kreverch
                                                                textsField.get(indText).setText(zfs.getZvol().zProperties.get(keyProp).getValue());
2697 14 kreverch
                                                        }
2698 14 kreverch
                                                }
2699 14 kreverch
2700 14 kreverch
                                        }else{
2701 14 kreverch
2702 14 kreverch
                                                if ( "nofreeentry".equalsIgnoreCase(zfs.getZvol().zProperties.get(keyProp).getType())) {
2703 14 kreverch
                                                        for (int indCombo=0;indCombo<combosField.size();indCombo++){
2704 14 kreverch
                                                                if ( combosField.get(indCombo).getData().equals(zfs.getZvol().zProperties.get(keyProp).getNameProperty()) ){
2705 14 kreverch
                                                                        combosField.get(indCombo).setText(zfs.getZvol().zProperties.get(keyProp).getValue());
2706 14 kreverch
                                                                }
2707 14 kreverch
                                                        }
2708 14 kreverch
                                                }
2709 14 kreverch
                                        }
2710 14 kreverch
                                }
2711 14 kreverch
                        }
2712 14 kreverch
                        Button btnSaveChange = new Button(compositeConfig,SWT.WRAP|SWT.BORDER);
2713 14 kreverch
                        GridData gridDataBtnSaveChanges = new GridData(GridData.FILL, GridData.CENTER, true, false);
2714 14 kreverch
                        //gridDataChart.heightHint = 250;
2715 14 kreverch
                        //gridDataChart.horizontalSpan = 2;
2716 14 kreverch
                        btnSaveChange.setText("Save Changes");
2717 14 kreverch
                        btnSaveChange.setLayoutData(gridDataBtnSaveChanges);
2718 14 kreverch
                        Button btnDestroyVolFS = new Button(compositeConfig,SWT.WRAP|SWT.BORDER);
2719 14 kreverch
                        GridData gridDataBtnDestroyVolFS = new GridData(GridData.FILL, GridData.CENTER, true, false);
2720 14 kreverch
                        btnSaveChange.setEnabled(false);
2721 14 kreverch
                        //gridDataChart.heightHint = 250;
2722 14 kreverch
                        //gridDataChart.horizontalSpan = 2;
2723 14 kreverch
                        btnDestroyVolFS.setText("Delete");
2724 14 kreverch
                        btnDestroyVolFS.setLayoutData(gridDataBtnDestroyVolFS);
2725 14 kreverch
                        btnDestroyVolFS.addListener(SWT.Selection, new Listener() {
2726 14 kreverch
2727 14 kreverch
                                public void handleEvent(final Event event) {
2728 14 kreverch
                                        log.debug("btnDestroyVolFS.addListener :"+zfs.getZvol().zProperties.get("name").getValue()+" "+zfs.getZvol().zProperties.get("type").getValue());
2729 14 kreverch
                                        destroyVolFS();
2730 14 kreverch
                                }
2731 14 kreverch
                        });
2732 14 kreverch
2733 14 kreverch
                        guiTrt=new guiTrt();
2734 14 kreverch
                        //create Chart
2735 14 kreverch
                        if ( "volume".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue())) {
2736 14 kreverch
                                guiTrt.formatChartValue(zfs.getZvol().zProperties.get("volsize").getValue(), zfs.getZvol().zProperties.get("usedbydataset").getValue(), zfs.getZvol().zProperties.get("usedbysnapshots").getValue());
2737 14 kreverch
                        }else{
2738 14 kreverch
                                if ( "filesystem".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue())) {
2739 14 kreverch
                                        guiTrt.formatChartValue(zfs.getZvol().zProperties.get("available").getValue(), zfs.getZvol().zProperties.get("usedbydataset").getValue(), zfs.getZvol().zProperties.get("usedbysnapshots").getValue());
2740 14 kreverch
                                }
2741 14 kreverch
                        }
2742 14 kreverch
2743 14 kreverch
                        dataCharset.clear();
2744 14 kreverch
                        this.dataCharset.put("Used By Data : "+zfs.getZvol().zProperties.get("usedbydataset").getValue(), guiTrt.getZfsUsedByData()) ;
2745 14 kreverch
                        this.dataCharset.put("Used By Snapshots : "+zfs.getZvol().zProperties.get("usedbysnapshots").getValue(), guiTrt.getZfsUsedBySnapshots()) ;
2746 14 kreverch
                        this.dataCharset.put("Free : "+BigDecimal.valueOf(guiTrt.getZfsFree()).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()+guiTrt.getUnit(), guiTrt.getZfsFreePourcent()) ;
2747 14 kreverch
                        PieDataset dataset = guiTrt.createDataset(dataCharset);
2748 14 kreverch
                        JFreeChart chartVolumeConfig = guiTrt.createChart(dataset, "Total Volume size : "+zfs.getZvol().zProperties.get("volsize").getValue());
2749 14 kreverch
                        if ( chartVolumeComposite != null){
2750 14 kreverch
                                if ( !chartVolumeComposite.isDisposed()){
2751 14 kreverch
                                        chartVolumeComposite.dispose();
2752 14 kreverch
                                }
2753 14 kreverch
                        }
2754 14 kreverch
2755 14 kreverch
                        //Create Grid for Chart
2756 14 kreverch
                        //gridDataChart = new GridData(GridData.FILL, GridData.CENTER, true, false);
2757 14 kreverch
                        gridDataChart = new GridData(SWT.FILL, SWT.FILL, true, true);
2758 14 kreverch
                        //gridDataChart.heightHint = 275;
2759 14 kreverch
                        //gridDataChart.heightHint =compositeConfig.
2760 14 kreverch
                        gridDataChart.horizontalSpan = 2;
2761 14 kreverch
                        //Create Composite for Chart
2762 14 kreverch
                        chartVolumeComposite= new ChartComposite(compositeConfig, SWT.BORDER, chartVolumeConfig, true);
2763 14 kreverch
                        chartVolumeComposite.setLayoutData(gridDataChart);
2764 14 kreverch
                        chartVolumeComposite.layout();
2765 14 kreverch
                        compositeConfig.layout();
2766 14 kreverch
                }
2767 14 kreverch
2768 14 kreverch
        }
2769 14 kreverch
2770 14 kreverch
        public void updateItemTreeZfsList(Boolean statusIscsi, String itemData,  TreeItem rootTree, String infoUsedSize, int indexTree){
2771 14 kreverch
                TreeItem root;
2772 14 kreverch
                if (indexTree ==-1){
2773 14 kreverch
                        root = new TreeItem(rootTree, SWT.None);
2774 14 kreverch
                }else{
2775 14 kreverch
                        root = new TreeItem(rootTree,SWT.None, indexTree);
2776 14 kreverch
                }
2777 14 kreverch
                root.setText(itemData+" ("+infoUsedSize+")");
2778 14 kreverch
2779 14 kreverch
2780 14 kreverch
                if (statusIscsi){
2781 14 kreverch
                        if ("filesystem".equals(zfs.getZvol().zProperties.get("type").getValue())){
2782 14 kreverch
                                root.setImage(imageFSOnline);
2783 14 kreverch
                        }else{
2784 14 kreverch
                                root.setImage(imageStorageOnline);
2785 14 kreverch
                        }
2786 14 kreverch
2787 14 kreverch
                }else{
2788 14 kreverch
                        if ("filesystem".equals(zfs.getZvol().zProperties.get("type").getValue())){
2789 14 kreverch
                                root.setImage(imageFSOffline);
2790 14 kreverch
                        }else{
2791 14 kreverch
                                root.setImage(imageStorageOffline);
2792 14 kreverch
                        }
2793 14 kreverch
2794 14 kreverch
                }
2795 14 kreverch
                root.setData(itemData);
2796 14 kreverch
                //Set Object Zvol to empty
2797 14 kreverch
                zfs.setZvol();
2798 14 kreverch
                zfs.setZiscsi();
2799 14 kreverch
        }
2800 14 kreverch
2801 14 kreverch
2802 14 kreverch
        public void actionClickTree(Event evt){
2803 14 kreverch
                final TreeItem root = (TreeItem) evt.item;
2804 14 kreverch
                strItemServer ="";
2805 14 kreverch
                strItemZvolFS="";
2806 14 kreverch
                countItem=0;
2807 14 kreverch
                thrGetallZvol = new Thread(new Runnable() {
2808 14 kreverch
2809 14 kreverch
                        public void run() {
2810 14 kreverch
                                Display.getDefault().syncExec(new Runnable() {
2811 14 kreverch
                                        public void run() {
2812 14 kreverch
                                                wPB.open();
2813 14 kreverch
2814 14 kreverch
                                        }
2815 14 kreverch
                                });
2816 14 kreverch
2817 14 kreverch
2818 14 kreverch
                                Display.getDefault().syncExec(new Runnable() {
2819 14 kreverch
                                        public void run() {
2820 14 kreverch
2821 14 kreverch
                                                if ( root.getParentItem() != null){
2822 14 kreverch
2823 14 kreverch
                                                        final TreeItem parentRoot = root.getParentItem();
2824 14 kreverch
                                                        if ( parentRoot.getParentItem() != null){
2825 14 kreverch
                                                                strItemServer=parentRoot.getParentItem().getData().toString();
2826 14 kreverch
2827 14 kreverch
                                                        }else{
2828 14 kreverch
                                                                strItemServer=root.getParentItem().getData().toString();
2829 14 kreverch
2830 14 kreverch
                                                        }
2831 14 kreverch
2832 14 kreverch
                                                        strItemZvolFS=root.getData().toString();
2833 14 kreverch
                                                        log.debug(strItemZvolFS);
2834 14 kreverch
                                                        countItem=root.getItemCount();
2835 14 kreverch
                                                        if (countItem <1){
2836 14 kreverch
                                                                root.clearAll(true);
2837 14 kreverch
                                                                root.setItemCount(0);
2838 14 kreverch
                                                        }
2839 14 kreverch
                                                }
2840 14 kreverch
                                        }
2841 14 kreverch
                                });
2842 14 kreverch
                                if (!strItemServer.equalsIgnoreCase("")){
2843 14 kreverch
                                        zfs.getServer(strItemServer);
2844 14 kreverch
                                        zfs.zfsGetAllVolume(strItemZvolFS);
2845 14 kreverch
2846 14 kreverch
                                        if ( countItem <1 && !zfs.getZvol().zProperties.get("type").getValue().equalsIgnoreCase("snapshot")){
2847 14 kreverch
                                                final List<Object> zlistSnapshots = zfs.zfsListSnapshotsByVolFS(strItemZvolFS);
2848 14 kreverch
2849 14 kreverch
                                                Display.getDefault().syncExec(new Runnable() {
2850 14 kreverch
                                                        public void run() {
2851 14 kreverch
2852 14 kreverch
                                                                for (int i = 0; i < zlistSnapshots.size(); i++) {
2853 14 kreverch
                                                                        TreeItem item = new TreeItem(root, 0);
2854 14 kreverch
                                                                        item.setText(zlistSnapshots.get(i).toString());
2855 14 kreverch
                                                                        item.setData(zlistSnapshots.get(i).toString());
2856 14 kreverch
                                                                        if ( zfs.getIscsiListConfigVol(zlistSnapshots.get(i).toString()) && ! "".equalsIgnoreCase(zfs.getZiscsi().zProperties.get("tid").getValue())){
2857 14 kreverch
                                                                                item.setImage(imageSnapshotOnline);
2858 14 kreverch
                                                                        }else{
2859 14 kreverch
                                                                                item.setImage(imageSnapshotOffline);
2860 14 kreverch
                                                                        }
2861 14 kreverch
2862 14 kreverch
                                                                }
2863 14 kreverch
                                                        }
2864 14 kreverch
                                                });
2865 14 kreverch
                                        }
2866 14 kreverch
2867 14 kreverch
                                        Display.getDefault().syncExec(new Runnable(){
2868 14 kreverch
                                                public void run(){
2869 14 kreverch
                                                        if ( !tbtmConfig.isDisposed()){
2870 14 kreverch
                                                                tbtmConfig.dispose();
2871 14 kreverch
                                                                tabFolderConfig.layout();
2872 14 kreverch
                                                        }
2873 14 kreverch
                                                        createTabItemVolConfig();
2874 14 kreverch
                                                        refreshConfigVolume();
2875 14 kreverch
2876 14 kreverch
2877 14 kreverch
                                                        if (! zfs.getZvol().zProperties.get("type").getValue().equalsIgnoreCase("snapshot")){
2878 14 kreverch
                                                                if (tbtmSnapshot.isDisposed()){
2879 14 kreverch
                                                                        createTabItemSnapshot();
2880 14 kreverch
                                                                }
2881 14 kreverch
                                                                refreshConfigSnapshot();
2882 14 kreverch
2883 14 kreverch
                                                        }else{
2884 14 kreverch
                                                                if ( !tbtmSnapshot.isDisposed()){
2885 14 kreverch
                                                                        tbtmSnapshot.dispose();
2886 14 kreverch
                                                                }
2887 14 kreverch
2888 14 kreverch
                                                        }
2889 14 kreverch
                                                        tabFolderConfig.setSelection(tbtmConfig);
2890 14 kreverch
                                                        refreshIscsiSession();
2891 14 kreverch
                                                        refreshConfigReplica();
2892 14 kreverch
                                                        tabFolderConfig.layout();
2893 14 kreverch
                                                        wPB.close();
2894 14 kreverch
                                                        menuTreeZFS();
2895 14 kreverch
                                                        tree.setMenu(treeZFSMenu);
2896 14 kreverch
2897 14 kreverch
2898 14 kreverch
                                                }
2899 14 kreverch
                                        });
2900 14 kreverch
2901 14 kreverch
                                }
2902 14 kreverch
                        }
2903 14 kreverch
                });
2904 14 kreverch
2905 14 kreverch
                thrGetallZvol.start();
2906 14 kreverch
        }
2907 14 kreverch
2908 14 kreverch
2909 14 kreverch
        public void menuTreeZFS(){
2910 14 kreverch
                if (treeZFSMenu != null && !treeZFSMenu.isDisposed()){
2911 14 kreverch
                        treeZFSMenu.dispose();
2912 14 kreverch
                }
2913 14 kreverch
                treeZFSMenu = new Menu(shell, SWT.POP_UP);
2914 14 kreverch
                MenuItem refreshZFSMenu = new MenuItem(treeZFSMenu, SWT.PUSH);
2915 14 kreverch
                refreshZFSMenu.setText("Refresh");
2916 14 kreverch
                refreshZFSMenu.addListener(SWT.Selection, new Listener() {
2917 14 kreverch
                        public void handleEvent(final Event event) {
2918 14 kreverch
2919 14 kreverch
                                tree.getSelection()[0].removeAll();
2920 14 kreverch
                                wPB = new guiProgress(shell.getDisplay(), shell.getLocation().x, shell.getLocation().y);
2921 14 kreverch
                                TreeItem itemSelected = tree.getSelection()[0];
2922 14 kreverch
                                while (itemSelected.getParentItem()!=null){
2923 14 kreverch
                                        itemSelected=itemSelected.getParentItem();
2924 14 kreverch
                                }
2925 14 kreverch
                                itemSelected.removeAll();
2926 14 kreverch
                                refreshTreeZFSList(itemSelected);
2927 14 kreverch
2928 14 kreverch
2929 14 kreverch
                        }
2930 14 kreverch
                });
2931 14 kreverch
2932 14 kreverch
                if ("volume".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue())||
2933 14 kreverch
                                "filesystem".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue())){
2934 14 kreverch
                        MenuItem snapshotVolFS = new MenuItem(treeZFSMenu, SWT.PUSH);
2935 14 kreverch
                        snapshotVolFS.setText("Launch Snapshoting");
2936 14 kreverch
                        snapshotVolFS.addListener(SWT.Selection, new Listener() {
2937 14 kreverch
                                public void handleEvent(final Event event) {
2938 14 kreverch
                                        zfs.zfsSnapshots();
2939 14 kreverch
                                        String[] keysPropError = zfs.getError().keySet().toArray(new String[0]);
2940 14 kreverch
2941 14 kreverch
                                        Arrays.sort(keysPropError);
2942 14 kreverch
                                        String textBox = "";
2943 14 kreverch
                                        for (int i = 0; i < keysPropError.length; i++) {
2944 14 kreverch
                                                String keyPropError = keysPropError[i];
2945 14 kreverch
                                                textBox = textBox +zfs.getError().get(keyPropError)+".\n";
2946 14 kreverch
                                        }
2947 14 kreverch
                                        if (keysPropError.length>0){
2948 14 kreverch
                                                MessageBox messageBoxError = new MessageBox(shell, SWT.DIALOG_TRIM);
2949 14 kreverch
                                                messageBoxError.setText("Warning");
2950 14 kreverch
                                                messageBoxError.setMessage(textBox);
2951 14 kreverch
                                                messageBoxError.open();
2952 14 kreverch
                                        }
2953 14 kreverch
                                }
2954 14 kreverch
                        });
2955 14 kreverch
2956 14 kreverch
                        MenuItem replicaVol = new MenuItem(treeZFSMenu, SWT.PUSH);
2957 14 kreverch
                        replicaVol.setText("Launch Replication");
2958 14 kreverch
                        replicaVol.addListener(SWT.Selection, new Listener() {
2959 14 kreverch
                                public void handleEvent(final Event event) {
2960 14 kreverch
                                        zfs.zfsReplicas();
2961 14 kreverch
                                        String[] keysPropError = zfs.getError().keySet().toArray(new String[0]);
2962 14 kreverch
2963 14 kreverch
                                        Arrays.sort(keysPropError);
2964 14 kreverch
                                        String textBox = "";
2965 14 kreverch
                                        for (int i = 0; i < keysPropError.length; i++) {
2966 14 kreverch
                                                String keyPropError = keysPropError[i];
2967 14 kreverch
                                                textBox = textBox +zfs.getError().get(keyPropError)+".\n";
2968 14 kreverch
                                        }
2969 14 kreverch
                                        if (keysPropError.length>0){
2970 14 kreverch
                                                MessageBox messageBoxError = new MessageBox(shell, SWT.DIALOG_TRIM);
2971 14 kreverch
                                                messageBoxError.setText("Warning");
2972 14 kreverch
                                                messageBoxError.setMessage(textBox);
2973 14 kreverch
                                                messageBoxError.open();
2974 14 kreverch
                                        }
2975 14 kreverch
                                }
2976 14 kreverch
                        });
2977 14 kreverch
                }
2978 14 kreverch
2979 14 kreverch
                if ("volume".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue())||
2980 14 kreverch
                                "filesystem".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue())||
2981 14 kreverch
                                "snapshot".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue())){
2982 14 kreverch
2983 14 kreverch
                        MenuItem removeVolFS = new MenuItem(treeZFSMenu, SWT.PUSH);
2984 14 kreverch
                        removeVolFS.setText("Remove "+zfs.getZvol().zProperties.get("name").getValue());
2985 14 kreverch
                        removeVolFS.addListener(SWT.Selection, new Listener() {
2986 14 kreverch
                                public void handleEvent(final Event event) {
2987 14 kreverch
                                        destroyVolFS();
2988 14 kreverch
                                }
2989 14 kreverch
                        });
2990 14 kreverch
                }
2991 14 kreverch
                if("snapshot".equalsIgnoreCase(zfs.getZvol().zProperties.get("type").getValue())){
2992 14 kreverch
                        MenuItem cloneSnapshpt = new MenuItem(treeZFSMenu, SWT.PUSH);
2993 14 kreverch
                        cloneSnapshpt.setText("Clone "+zfs.getZvol().zProperties.get("name").getValue());
2994 14 kreverch
                        cloneSnapshpt.addListener(SWT.Selection, new Listener() {
2995 14 kreverch
                                public void handleEvent(final Event event) {
2996 14 kreverch
                                        zfs.zfsClone();
2997 14 kreverch
                                        if ( zfs.getError().size()>0){
2998 14 kreverch
2999 14 kreverch
                                        }else{
3000 14 kreverch
                                                int indRoot=0;
3001 14 kreverch
                                                int indItem=0;
3002 14 kreverch
                                                if ("filesystem".equals(zfs.getZvol().zProperties.get("type").getValue())){
3003 14 kreverch
                                                        infoUsedSize=zfs.getZvol().zProperties.get("usedbydataset").getValue()+"/"+zfs.getZvol().zProperties.get("available").getValue();
3004 14 kreverch
                                                }else{
3005 14 kreverch
                                                        infoUsedSize=zfs.getZvol().zProperties.get("used").getValue()+" / "+zfs.getZvol().zProperties.get("volsize").getValue();
3006 14 kreverch
                                                }
3007 14 kreverch
                                                for (int indT=0;indT<tree.getItemCount();indT++){
3008 14 kreverch
                                                        if (tree.getItem(indT).getData().toString().equals(zfs.getZserver().zProperties.get("serverIP").getValue())){
3009 14 kreverch
                                                                for (int indTreeVolFS=0;indTreeVolFS<tree.getItem(indT).getItemCount();indTreeVolFS++){
3010 14 kreverch
                                                                        if (tree.getItem(indT).getItem(indTreeVolFS).getData().toString().compareTo(zfs.getZvol().zProperties.get("name").getValue()) >0){
3011 14 kreverch
                                                                                if (zfs.getError().size()>0){
3012 14 kreverch
                                                                                        updateItemTreeZfsList(false,zfs.getZvol().zProperties.get("name").getValue(), tree.getItem(indT), infoUsedSize ,indTreeVolFS);
3013 14 kreverch
                                                                                }else{
3014 14 kreverch
                                                                                        updateItemTreeZfsList(true, zfs.getZvol().zProperties.get("name").getValue(), tree.getItem(indT), infoUsedSize ,indTreeVolFS);
3015 14 kreverch
                                                                                }
3016 14 kreverch
                                                                                indRoot=indT;
3017 14 kreverch
                                                                                indItem=indTreeVolFS;
3018 14 kreverch
                                                                                break;
3019 14 kreverch
                                                                        }
3020 14 kreverch
                                                                }
3021 14 kreverch
                                                                if ( indItem==0){
3022 14 kreverch
                                                                        int indTreeVolFS=tree.getItem(indT).getItemCount();
3023 14 kreverch
                                                                        if (zfs.getError().size()>0){
3024 14 kreverch
                                                                                updateItemTreeZfsList(false,zfs.getZvol().zProperties.get("name").getValue(), tree.getItem(indT), infoUsedSize ,indTreeVolFS);
3025 14 kreverch
                                                                        }else{
3026 14 kreverch
                                                                                updateItemTreeZfsList(true,zfs.getZvol().zProperties.get("name").getValue(), tree.getItem(indT), infoUsedSize ,indTreeVolFS);
3027 14 kreverch
                                                                        }
3028 14 kreverch
                                                                        indRoot=indT;
3029 14 kreverch
                                                                        indItem=indTreeVolFS;
3030 14 kreverch
                                                                }
3031 14 kreverch
                                                                tree.layout();
3032 14 kreverch
                                                        }
3033 14 kreverch
                                                }
3034 14 kreverch
                                        }
3035 14 kreverch
                                }
3036 14 kreverch
                        });
3037 14 kreverch
                }
3038 14 kreverch
3039 14 kreverch
        }
3040 14 kreverch
3041 14 kreverch
        public void destroyVolFS(){
3042 14 kreverch
                if ( !"".equals(zfs.getZvol().zProperties.get("name").getValue())){
3043 14 kreverch
                        MessageBox messageBoxConfirm = new MessageBox(shell, SWT.YES|SWT.NO);
3044 14 kreverch
                        messageBoxConfirm.setText("Warning");
3045 14 kreverch
                        String textBoxConfirm="Remove : "+zfs.getZvol().zProperties.get("name").getValue()+" ?";
3046 14 kreverch
                        messageBoxConfirm.setMessage(textBoxConfirm);
3047 14 kreverch
                        int answerIDConfirm= messageBoxConfirm.open();
3048 14 kreverch
                        if (answerIDConfirm == SWT.YES){
3049 14 kreverch
                                if ("filesystem".equals(zfs.getZvol().zProperties.get("type").getValue())){
3050 14 kreverch
                                        if ("yes".equals(zfs.getZvol().zProperties.get("mounted").getValue()) ){
3051 14 kreverch
                                                MessageBox messageBoxInfo = new MessageBox(shell, SWT.YES|SWT.NO);
3052 14 kreverch
                                                messageBoxInfo.setText("Warning");
3053 14 kreverch
                                                String textBox=zfs.getZvol().zProperties.get("name").getValue()+" is mounted\n Do you want umount it ?";
3054 14 kreverch
                                                messageBoxInfo.setMessage(textBox);
3055 14 kreverch
                                                int answerID= messageBoxInfo.open();
3056 14 kreverch
                                                if (answerID == SWT.YES){
3057 14 kreverch
                                                        zfs.zfsUmountFS();
3058 14 kreverch
                                                        String[] keysPropError = zfs.getError().keySet().toArray(new String[0]);
3059 14 kreverch
                                                        //String[] keysProp = (String[]) zfs.getZserver().zProperties.keySet().toArray(new String[0]);
3060 14 kreverch
                                                        Arrays.sort(keysPropError);
3061 14 kreverch
                                                        textBox = "";
3062 14 kreverch
                                                        for (int i = 0; i < keysPropError.length; i++) {
3063 14 kreverch
                                                                String keyPropError = keysPropError[i];
3064 14 kreverch
                                                                textBox = textBox +zfs.getError().get(keyPropError)+".\n";
3065 14 kreverch
                                                        }
3066 14 kreverch
                                                        if (keysPropError.length>0){
3067 14 kreverch
                                                                MessageBox messageBoxError = new MessageBox(shell, SWT.DIALOG_TRIM);
3068 14 kreverch
                                                                messageBoxError.setText("Warning");
3069 14 kreverch
                                                                messageBoxError.setMessage(textBox);
3070 14 kreverch
                                                                messageBoxError.open();
3071 14 kreverch
                                                        }else{
3072 14 kreverch
                                                                zfs.zfsDestroyVolFS();
3073 14 kreverch
                                                                keysPropError = zfs.getError().keySet().toArray(new String[0]);
3074 14 kreverch
3075 14 kreverch
                                                                Arrays.sort(keysPropError);
3076 14 kreverch
                                                                textBox = "";
3077 14 kreverch
                                                                for (int i = 0; i < keysPropError.length; i++) {
3078 14 kreverch
                                                                        String keyPropError = keysPropError[i];
3079 14 kreverch
                                                                        textBox = textBox +zfs.getError().get(keyPropError)+".\n";
3080 14 kreverch
                                                                }
3081 14 kreverch
                                                                if (keysPropError.length>0){
3082 14 kreverch
                                                                        MessageBox messageBoxError = new MessageBox(shell, SWT.DIALOG_TRIM);
3083 14 kreverch
                                                                        messageBoxError.setText("Warning");
3084 14 kreverch
                                                                        messageBoxError.setMessage(textBox);
3085 14 kreverch
                                                                        messageBoxError.open();
3086 14 kreverch
                                                                }else{
3087 14 kreverch
                                                                        tree.getSelection()[0].clearAll(true);
3088 14 kreverch
                                                                        tree.getSelection()[0].dispose();
3089 14 kreverch
                                                                        tree.layout();
3090 14 kreverch
                                                                        zfs.setZvol();
3091 14 kreverch
                                                                        if ( !tbtmConfig.isDisposed()){
3092 14 kreverch
                                                                                tbtmConfig.dispose();
3093 14 kreverch
                                                                                tabFolderConfig.layout();
3094 14 kreverch
                                                                        }
3095 14 kreverch
                                                                        createTabItemVolConfig();
3096 14 kreverch
                                                                        refreshConfigVolume();
3097 14 kreverch
                                                                        tabFolderConfig.layout();
3098 14 kreverch
3099 14 kreverch
                                                                }
3100 14 kreverch
                                                        }
3101 14 kreverch
                                                }
3102 14 kreverch
                                        }else{
3103 14 kreverch
                                                zfs.zfsDestroyVolFS();
3104 14 kreverch
                                                String[] keysPropError = zfs.getError().keySet().toArray(new String[0]);
3105 14 kreverch
3106 14 kreverch
                                                Arrays.sort(keysPropError);
3107 14 kreverch
                                                String textBox = "";
3108 14 kreverch
                                                for (int i = 0; i < keysPropError.length; i++) {
3109 14 kreverch
                                                        String keyPropError = keysPropError[i];
3110 14 kreverch
                                                        textBox = textBox +zfs.getError().get(keyPropError)+".\n";
3111 14 kreverch
                                                }
3112 14 kreverch
                                                if (keysPropError.length>0){
3113 14 kreverch
                                                        MessageBox messageBoxError = new MessageBox(shell, SWT.DIALOG_TRIM);
3114 14 kreverch
                                                        messageBoxError.setText("Warning");
3115 14 kreverch
                                                        messageBoxError.setMessage(textBox);
3116 14 kreverch
                                                        messageBoxError.open();
3117 14 kreverch
                                                }else{
3118 14 kreverch
                                                        tree.getSelection()[0].clearAll(true);
3119 14 kreverch
                                                        tree.getSelection()[0].dispose();
3120 14 kreverch
                                                        tree.layout();
3121 14 kreverch
                                                        zfs.setZvol();
3122 14 kreverch
                                                        if ( !tbtmConfig.isDisposed()){
3123 14 kreverch
                                                                tbtmConfig.dispose();
3124 14 kreverch
                                                                tabFolderConfig.layout();
3125 14 kreverch
                                                        }
3126 14 kreverch
                                                        createTabItemVolConfig();
3127 14 kreverch
                                                        refreshConfigVolume();
3128 14 kreverch
                                                        tabFolderConfig.layout();
3129 14 kreverch
3130 14 kreverch
                                                        if (! zfs.getZvol().zProperties.get("type").getValue().equalsIgnoreCase("snapshot")){
3131 14 kreverch
                                                                //refreshInfoSnapshot();
3132 14 kreverch
                                                                refreshConfigSnapshot();
3133 14 kreverch
                                                        }
3134 14 kreverch
                                                        tabFolderConfig.setSelection(tbtmConfig);
3135 14 kreverch
                                                        refreshIscsiSession();
3136 14 kreverch
                                                }
3137 14 kreverch
                                        }
3138 14 kreverch
                                }else{
3139 14 kreverch
                                        if ( "volume".equals(zfs.getZvol().zProperties.get("type").getValue())){
3140 14 kreverch
                                                zfs.zfsDelIscsi();
3141 14 kreverch
                                                String[] keysPropError = zfs.getError().keySet().toArray(new String[0]);
3142 14 kreverch
3143 14 kreverch
                                                Arrays.sort(keysPropError);
3144 14 kreverch
                                                String textBox = "";
3145 14 kreverch
                                                for (int i = 0; i < keysPropError.length; i++) {
3146 14 kreverch
                                                        String keyPropError = keysPropError[i];
3147 14 kreverch
                                                        textBox = textBox +zfs.getError().get(keyPropError)+".\n";
3148 14 kreverch
                                                }
3149 14 kreverch
                                                if (keysPropError.length>0){
3150 14 kreverch
                                                        MessageBox messageBoxError = new MessageBox(shell, SWT.DIALOG_TRIM);
3151 14 kreverch
                                                        messageBoxError.setText("Warning");
3152 14 kreverch
                                                        messageBoxError.setMessage(textBox);
3153 14 kreverch
                                                        messageBoxError.open();
3154 14 kreverch
                                                }else{
3155 14 kreverch
                                                        zfs.zfsDestroyVolFS();
3156 14 kreverch
                                                        keysPropError = zfs.getError().keySet().toArray(new String[0]);
3157 14 kreverch
3158 14 kreverch
                                                        Arrays.sort(keysPropError);
3159 14 kreverch
                                                        textBox = "";
3160 14 kreverch
                                                        for (int i = 0; i < keysPropError.length; i++) {
3161 14 kreverch
                                                                String keyPropError = keysPropError[i];
3162 14 kreverch
                                                                textBox = textBox +zfs.getError().get(keyPropError)+".\n";
3163 14 kreverch
                                                        }
3164 14 kreverch
                                                        if (keysPropError.length>0){
3165 14 kreverch
                                                                MessageBox messageBoxError = new MessageBox(shell, SWT.DIALOG_TRIM);
3166 14 kreverch
                                                                messageBoxError.setText("Warning");
3167 14 kreverch
                                                                messageBoxError.setMessage(textBox);
3168 14 kreverch
                                                                messageBoxError.open();
3169 14 kreverch
                                                        }else{
3170 14 kreverch
                                                                zfs.zfsDisableSnapshots();
3171 14 kreverch
                                                                tree.getSelection()[0].clearAll(true);
3172 14 kreverch
                                                                tree.getSelection()[0].dispose();
3173 14 kreverch
                                                                tree.layout();
3174 14 kreverch
                                                                zfs.setZvol();
3175 14 kreverch
                                                                if ( !tbtmConfig.isDisposed()){
3176 14 kreverch
                                                                        tbtmConfig.dispose();
3177 14 kreverch
                                                                        tabFolderConfig.layout();
3178 14 kreverch
                                                                }
3179 14 kreverch
                                                                createTabItemVolConfig();
3180 14 kreverch
                                                                refreshConfigVolume();
3181 14 kreverch
                                                                tabFolderConfig.layout();
3182 14 kreverch
3183 14 kreverch
                                                                if (! zfs.getZvol().zProperties.get("type").getValue().equalsIgnoreCase("snapshot")){
3184 14 kreverch
                                                                        refreshConfigSnapshot();
3185 14 kreverch
                                                                }
3186 14 kreverch
                                                                tabFolderConfig.setSelection(tbtmConfig);
3187 14 kreverch
                                                                refreshIscsiSession();
3188 14 kreverch
                                                        }
3189 14 kreverch
                                                }
3190 14 kreverch
                                        }else{
3191 14 kreverch
                                                if ( "snapshot".equals(zfs.getZvol().zProperties.get("type").getValue())){
3192 14 kreverch
                                                        zfs.zfsDelIscsi();
3193 14 kreverch
                                                        String[] keysPropError = zfs.getError().keySet().toArray(new String[0]);
3194 14 kreverch
3195 14 kreverch
                                                        Arrays.sort(keysPropError);
3196 14 kreverch
                                                        String textBox = "";
3197 14 kreverch
                                                        for (int i = 0; i < keysPropError.length; i++) {
3198 14 kreverch
                                                                String keyPropError = keysPropError[i];
3199 14 kreverch
                                                                textBox = textBox +zfs.getError().get(keyPropError)+".\n";
3200 14 kreverch
                                                        }
3201 14 kreverch
                                                        if (keysPropError.length>0){
3202 14 kreverch
                                                                MessageBox messageBoxError = new MessageBox(shell, SWT.DIALOG_TRIM);
3203 14 kreverch
                                                                messageBoxError.setText("Warning");
3204 14 kreverch
                                                                messageBoxError.setMessage(textBox);
3205 14 kreverch
                                                                messageBoxError.open();
3206 14 kreverch
                                                        }else{
3207 14 kreverch
                                                                zfs.zfsDestroyVolFS();
3208 14 kreverch
                                                                keysPropError = zfs.getError().keySet().toArray(new String[0]);
3209 14 kreverch
3210 14 kreverch
                                                                Arrays.sort(keysPropError);
3211 14 kreverch
                                                                textBox = "";
3212 14 kreverch
                                                                for (int i = 0; i < keysPropError.length; i++) {
3213 14 kreverch
                                                                        String keyPropError = keysPropError[i];
3214 14 kreverch
                                                                        textBox = textBox +zfs.getError().get(keyPropError)+".\n";
3215 14 kreverch
                                                                }
3216 14 kreverch
                                                                if (keysPropError.length>0){
3217 14 kreverch
                                                                        MessageBox messageBoxError = new MessageBox(shell, SWT.DIALOG_TRIM);
3218 14 kreverch
                                                                        messageBoxError.setText("Warning");
3219 14 kreverch
                                                                        messageBoxError.setMessage(textBox);
3220 14 kreverch
                                                                        messageBoxError.open();
3221 14 kreverch
                                                                }else{
3222 14 kreverch
                                                                        zfs.zfsDisableSnapshots();
3223 14 kreverch
                                                                        tree.getSelection()[0].clearAll(true);
3224 14 kreverch
                                                                        tree.getSelection()[0].dispose();
3225 14 kreverch
                                                                        tree.layout();
3226 14 kreverch
                                                                        zfs.setZvol();
3227 14 kreverch
                                                                        if ( !tbtmConfig.isDisposed()){
3228 14 kreverch
                                                                                tbtmConfig.dispose();
3229 14 kreverch
                                                                                tabFolderConfig.layout();
3230 14 kreverch
                                                                        }
3231 14 kreverch
                                                                        createTabItemVolConfig();
3232 14 kreverch
                                                                        refreshConfigVolume();
3233 14 kreverch
                                                                        tabFolderConfig.layout();
3234 14 kreverch
3235 14 kreverch
                                                                        if (! zfs.getZvol().zProperties.get("type").getValue().equalsIgnoreCase("snapshot")){
3236 14 kreverch
                                                                                refreshConfigSnapshot();
3237 14 kreverch
                                                                        }
3238 14 kreverch
                                                                        tabFolderConfig.setSelection(tbtmConfig);
3239 14 kreverch
                                                                        refreshIscsiSession();
3240 14 kreverch
                                                                }
3241 14 kreverch
                                                        }
3242 14 kreverch
                                                }
3243 14 kreverch
3244 14 kreverch
3245 14 kreverch
                                        }
3246 14 kreverch
3247 14 kreverch
                                }
3248 14 kreverch
                        }
3249 14 kreverch
3250 14 kreverch
3251 14 kreverch
                }
3252 14 kreverch
        }
3253 14 kreverch
3254 14 kreverch
3255 14 kreverch
3256 14 kreverch
}