public void fire(Object event) { FlatPopupMenu dlg = new FlatPopupMenu(button, null, true, false, false, false); DateTime ctrl = new DateTime(dlg.getControl(), SWT.CALENDAR | SWT.LONG); long date = DateTimeUtil.getDateFromString(text.getText()); if (date != 0) { Calendar c = Calendar.getInstance(); c.setTimeInMillis(date); ctrl.setYear(c.get(Calendar.YEAR)); ctrl.setMonth(c.get(Calendar.MONTH)); ctrl.setDay(c.get(Calendar.DAY_OF_MONTH)); } ctrl.addSelectionListener( new SelectionListenerWithData<DateTime>(ctrl) { public void widgetSelected(SelectionEvent e) { Calendar c = Calendar.getInstance(); c.set(Calendar.YEAR, data().getYear()); c.set(Calendar.MONTH, data().getMonth()); c.set(Calendar.DAY_OF_MONTH, data().getDay()); text.setText(DateTimeUtil.getDateString(c.getTimeInMillis())); } }); dlg.show(button, FlatPopupMenu.Orientation.BOTTOM, true); }
/** @see IDialogPage#createControl(Composite) */ @Override public void createControl(Composite parent) { // Set up the composite to hold all the information sc = new ScrolledComposite(parent, SWT.V_SCROLL | SWT.H_SCROLL); sc.setLayout(new FillLayout()); final Composite composite = new Composite(sc, SWT.NULL); composite.setLocation(-708, 1); composite.setLayout(new GridLayout(2, false)); // Specify the expansion Adapter expansionAdapter = new ExpansionAdapter() { @Override public void expansionStateChanged(ExpansionEvent e) { // advanced options expanded, resize composite.layout(); sc.notifyListeners(SWT.Resize, null); // force shell resize Point size; if (e.getState()) size = getShell().computeSize(550, 920); else size = getShell().computeSize(550, 400); getShell().setSize(size); } }; Label lblNewLabel = new Label(composite, SWT.NONE); lblNewLabel.setText("&ICAT site ID"); icatIDCombo = new Combo(composite, SWT.BORDER | SWT.READ_ONLY); GridData gd_icatIDCombo = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1); gd_icatIDCombo.widthHint = 269; icatIDCombo.setLayoutData(gd_icatIDCombo); icatIDCombo.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { logger.debug("selection changed: " + icatIDCombo.getText()); // change remaining parameters int index = icatIDCombo.getSelectionIndex(); icatSiteNameText.setText( getToken(index, preferenceStore.getString("ICAT_NAME_PREF"), DELIMITER)); txtSftpServer.setText( getToken(index, preferenceStore.getString("ICAT_SFTPSERVER_PREF"), DELIMITER)); txtDirectory.setText( getToken(index, preferenceStore.getString("ICAT_DOWNLOADDIR_PREF"), DELIMITER)); } }); /* * populate wizard with current ICAT preferences */ icatIDCombo.removeAll(); String[] tokens = preferenceStore.getDefaultString("ICAT_ID_PREF").split(DELIMITER); for (int count = 0; count < tokens.length; count++) { icatIDCombo.add(tokens[count]); } icatIDCombo.select(0); int index = icatIDCombo.getSelectionIndex(); Label lblicatDatabase = new Label(composite, SWT.NONE); lblicatDatabase.setText("&ICAT site name:"); icatSiteNameText = new Text(composite, SWT.BORDER | SWT.READ_ONLY); GridData gd_icatSiteNameText = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1); gd_icatSiteNameText.widthHint = 260; icatSiteNameText.setLayoutData(gd_icatSiteNameText); icatSiteNameText.setEditable(false); icatSiteNameText.setText( getToken(index, preferenceStore.getString("ICAT_NAME_PREF"), DELIMITER)); icatSiteNameText.setBounds(113, 53, 212, 27); Label fedidLbl = new Label(composite, SWT.NONE); fedidLbl.setText("&FedId:"); txtFedid = new Text(composite, SWT.BORDER); GridData gd_txtFedid = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1); gd_txtFedid.widthHint = 260; txtFedid.setLayoutData(gd_txtFedid); txtFedid.setText(initFedid); txtFedid.addKeyListener(this); Label passwordLbl = new Label(composite, SWT.NONE); passwordLbl.setBounds(4, 139, 64, 13); passwordLbl.setText("&Password:"******"&Project name:"); txtProject = new Text(composite, SWT.BORDER); GridData gd_txtProject = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1); gd_txtProject.widthHint = 260; txtProject.setLayoutData(gd_txtProject); txtProject.setBounds(113, 173, 212, 27); txtProject.setText(initProject); txtProject.addKeyListener(this); sc.setContent(composite); sc.setExpandVertical(true); sc.setExpandHorizontal(true); new Label(composite, SWT.NONE); new Label(composite, SWT.NONE); /** set-up advanced options GUI elements */ advancedOptionsExpander = new ExpandableComposite(composite, SWT.NONE); GridData gd_advancedOptionsExpander = new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1); gd_advancedOptionsExpander.widthHint = 242; advancedOptionsExpander.setLayoutData(gd_advancedOptionsExpander); advancedOptionsExpander.setLayout(new GridLayout(2, false)); advancedOptionsExpander.setText("Advanced Options"); advancedOptionsExpander.setExpanded(false); Composite optionsComposite = new Composite(advancedOptionsExpander, SWT.NONE); optionsComposite.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 3, 1)); optionsComposite.setLayout(new GridLayout(3, false)); Label sftpServerLbl = new Label(optionsComposite, SWT.NONE); sftpServerLbl.setText("&SFTP server:"); txtSftpServer = new Text(optionsComposite, SWT.BORDER); GridData gd_txtSftpServer = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1); gd_txtSftpServer.widthHint = 193; txtSftpServer.setLayoutData(gd_txtSftpServer); txtSftpServer.setEditable(true); txtSftpServer.setText( getToken(index, preferenceStore.getString("ICAT_SFTPSERVER_PREF"), DELIMITER)); final Button btnSftpTest = new Button(optionsComposite, SWT.NONE); GridData gd_btnSftpTest = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1); gd_btnSftpTest.widthHint = 100; btnSftpTest.setLayoutData(gd_btnSftpTest); btnSftpTest.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { /* * test server using ping */ if (NetworkUtils.isReachable(txtSftpServer.getText())) { Image okImage = (ResourceManager.getPluginImage(ICAT_PLUGIN_ID, "icons/ok.png")); ; btnSftpTest.setImage(okImage); } else { Image noImage = (ResourceManager.getPluginImage(ICAT_PLUGIN_ID, "icons/no.png")); ; btnSftpTest.setImage(noImage); } } }); btnSftpTest.setText("Test"); txtSftpServer.addModifyListener( new ModifyListener() { @Override public void modifyText(ModifyEvent e) { btnSftpTest.setImage(null); } }); Label lbldownloadDirectory = new Label(optionsComposite, SWT.NULL); lbldownloadDirectory.setText("&Download directory:"); txtDirectory = new Text(optionsComposite, SWT.BORDER); GridData gd_txtDirectory = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1); gd_txtDirectory.widthHint = 193; txtDirectory.setLayoutData(gd_txtDirectory); txtDirectory.setEditable(true); txtDirectory.setEnabled(true); txtDirectory.setText( getToken(index, preferenceStore.getString("ICAT_DOWNLOADDIR_PREF"), DELIMITER)); Button BtnBrowseDirectory = new Button(optionsComposite, SWT.PUSH); GridData gd_BtnBrowseDirectory = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1); gd_BtnBrowseDirectory.widthHint = 100; BtnBrowseDirectory.setLayoutData(gd_BtnBrowseDirectory); BtnBrowseDirectory.setText("Browse..."); BtnBrowseDirectory.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { handleDownloadDirBrowse(); } }); Label lbltruststorePath = new Label(optionsComposite, SWT.NONE); lbltruststorePath.setBounds(10, 131, 103, 19); lbltruststorePath.setText("&Truststore path:"); txtTruststore = new Text(optionsComposite, SWT.BORDER); txtTruststore.setText( getToken(index, preferenceStore.getString("ICAT_TRUSTSTORE_PATH_PREF"), DELIMITER)); GridData gd_txtTruststore = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1); gd_txtTruststore.widthHint = 193; txtTruststore.setLayoutData(gd_txtTruststore); txtTruststore.setEnabled(true); txtTruststore.setEditable(true); Button BtnBrowseTruststore = new Button(optionsComposite, SWT.PUSH); GridData gd_BtnBrowseTruststore = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1); gd_BtnBrowseTruststore.widthHint = 100; BtnBrowseTruststore.setLayoutData(gd_BtnBrowseTruststore); BtnBrowseTruststore.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { handleTruststoreBrowse(); } }); BtnBrowseTruststore.setText("Browse..."); Label lbltruststorePassword = new Label(optionsComposite, SWT.NONE); lbltruststorePassword.setText("&Truststore password:"******"ICAT_TRUSTSTORE_PASS_PREF"), DELIMITER)); GridData gd_txtTruststorePassword = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1); gd_txtTruststorePassword.widthHint = 193; txtTruststorePassword.setLayoutData(gd_txtTruststorePassword); txtTruststorePassword.setEnabled(true); txtTruststorePassword.addKeyListener(this); final Button btnShowPassword = new Button(optionsComposite, SWT.CHECK); btnShowPassword.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (btnShowPassword.getSelection()) { txtTruststorePassword.setEchoChar((char) 0); } else { txtTruststorePassword.setEchoChar('*'); } } }); btnShowPassword.setText("Show password"); // set default FROM date to current date Calendar calA = Calendar.getInstance(); Label lblFrom = new Label(optionsComposite, SWT.TOP); lblFrom.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, false, 1, 1)); lblFrom.setText("Visit StartDate from:"); dateFrom = new DateTime(optionsComposite, SWT.NONE | SWT.CALENDAR | SWT.DROP_DOWN); dateFrom.setForeground(SWTResourceManager.getColor(SWT.COLOR_WIDGET_FOREGROUND)); dateFrom.setBackground(SWTResourceManager.getColor(SWT.COLOR_TITLE_BACKGROUND_GRADIENT)); GridData gd_dateFrom = new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1); gd_dateFrom.widthHint = 193; dateFrom.setLayoutData(gd_dateFrom); dateFrom.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { // set from date setSqlFromDate(dateFrom); } }); dateFrom.setYear(2006); // calA.get(Calendar.YEAR)); dateFrom.setMonth(calA.get(Calendar.MONTH)); dateFrom.setDay(calA.get(Calendar.DAY_OF_YEAR)); setSqlFromDate(dateFrom); Label lblTo = new Label(optionsComposite, SWT.TOP); lblTo.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, false, 1, 1)); lblTo.setText("Visit StartDate to:"); dateTo = new DateTime(optionsComposite, SWT.NONE | SWT.CALENDAR | SWT.DROP_DOWN); dateTo.setBackground(SWTResourceManager.getColor(SWT.COLOR_TITLE_BACKGROUND_GRADIENT)); dateTo.setForeground(SWTResourceManager.getColor(SWT.COLOR_WIDGET_FOREGROUND)); GridData gd_dateTo = new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1); gd_dateTo.widthHint = 193; dateTo.setLayoutData(gd_dateTo); dateTo.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { // set to date setSqlToDate(dateTo); } }); // end with current date + 1 month dateTo.setYear(calA.get(Calendar.YEAR)); dateTo.setMonth(calA.get(Calendar.MONTH) + 1); dateTo.setDay(calA.get(Calendar.DAY_OF_YEAR)); setSqlToDate(dateTo); advancedOptionsExpander.setClient(optionsComposite); new Label(optionsComposite, SWT.NONE); new Label(optionsComposite, SWT.NONE); new Label(optionsComposite, SWT.NONE); advancedOptionsExpander.addExpansionListener(expansionAdapter); setControl(composite); dialogChanged(); new Label(composite, SWT.NONE); new Label(composite, SWT.NONE); }