List of usage examples for org.eclipse.jface.dialogs IDialogConstants HORIZONTAL_SPACING
int HORIZONTAL_SPACING
To view the source code for org.eclipse.jface.dialogs IDialogConstants HORIZONTAL_SPACING.
Click Source Link
From source file:org.eclipse.equinox.internal.p2.ui.dialogs.SelectableIUsPage.java
License:Open Source License
private void createSelectButtons(Composite parent) { Composite buttonParent = new Composite(parent, SWT.NONE); GridLayout gridLayout = new GridLayout(); gridLayout.numColumns = 3;/*from www .j a v a 2s. co m*/ gridLayout.marginWidth = 0; gridLayout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING); buttonParent.setLayout(gridLayout); GridData data = new GridData(SWT.FILL, SWT.DEFAULT, true, false); buttonParent.setLayoutData(data); Button selectAll = new Button(buttonParent, SWT.PUSH); selectAll.setText(ProvUIMessages.SelectableIUsPage_Select_All); setButtonLayoutData(selectAll); selectAll.addListener(SWT.Selection, new Listener() { public void handleEvent(Event event) { tableViewer.setAllChecked(true); updateSelection(); } }); Button deselectAll = new Button(buttonParent, SWT.PUSH); deselectAll.setText(ProvUIMessages.SelectableIUsPage_Deselect_All); setButtonLayoutData(deselectAll); deselectAll.addListener(SWT.Selection, new Listener() { public void handleEvent(Event event) { tableViewer.setAllChecked(false); updateSelection(); } }); // dummy to take extra space Label dummy = new Label(buttonParent, SWT.NONE); data = new GridData(SWT.FILL, SWT.FILL, true, true); dummy.setLayoutData(data); // separator underneath Label sep = new Label(buttonParent, SWT.HORIZONTAL | SWT.SEPARATOR); data = new GridData(SWT.FILL, SWT.DEFAULT, true, false); data.horizontalSpan = 3; sep.setLayoutData(data); }
From source file:org.eclipse.equinox.p2.ui.RepositoryManipulationPage.java
License:Open Source License
protected Control createContents(Composite parent) { display = parent.getDisplay();/*w w w .j av a 2 s. c o m*/ // The help refers to the full-blown dialog. No help if it's read only. if (policy.getRepositoriesVisible()) PlatformUI.getWorkbench().getHelpSystem().setHelp(parent.getShell(), IProvHelpContextIds.REPOSITORY_MANIPULATION_DIALOG); Composite composite = new Composite(parent, SWT.NONE); GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true); composite.setLayoutData(gd); GridLayout layout = new GridLayout(); layout.numColumns = policy.getRepositoriesVisible() ? 2 : 1; layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN); layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN); layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING); layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING); composite.setLayout(layout); // Filter box pattern = new Text(composite, SWT.SINGLE | SWT.BORDER | SWT.SEARCH | SWT.CANCEL); pattern.getAccessible().addAccessibleListener(new AccessibleAdapter() { public void getName(AccessibleEvent e) { e.result = DEFAULT_FILTER_TEXT; } }); pattern.setText(DEFAULT_FILTER_TEXT); pattern.selectAll(); pattern.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { applyFilter(); } }); pattern.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { if (e.keyCode == SWT.ARROW_DOWN) { if (table.getItemCount() > 0) { table.setFocus(); } else if (e.character == SWT.CR) { return; } } } }); pattern.addFocusListener(new FocusAdapter() { public void focusGained(FocusEvent e) { display.asyncExec(new Runnable() { public void run() { if (!pattern.isDisposed()) { if (DEFAULT_FILTER_TEXT.equals(pattern.getText().trim())) { pattern.selectAll(); } } } }); } }); gd = new GridData(SWT.FILL, SWT.FILL, true, false); pattern.setLayoutData(gd); // spacer to fill other column if (policy.getRepositoriesVisible()) new Label(composite, SWT.NONE); // Table of available repositories table = new Table(composite, SWT.CHECK | SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); repositoryViewer = new CheckboxTableViewer(table); // Key listener for delete table.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { if (e.keyCode == SWT.DEL) { removeRepositories(); } } }); setTableColumns(); CopyUtils.activateCopy(this, table); repositoryViewer.setComparer(new ProvElementComparer()); comparator = new MetadataRepositoryElementComparator(RepositoryDetailsLabelProvider.COL_NAME); repositoryViewer.setComparator(comparator); filter = new MetadataRepositoryPatternFilter(); repositoryViewer.setFilters(new ViewerFilter[] { filter }); // We don't need a deferred content provider because we are caching local results before // actually querying repositoryViewer.setContentProvider(new ProvElementContentProvider()); labelProvider = new RepositoryDetailsLabelProvider(); repositoryViewer.setLabelProvider(labelProvider); // Edit the nickname repositoryViewer.setCellModifier(new ICellModifier() { public boolean canModify(Object element, String property) { return element instanceof MetadataRepositoryElement; } public Object getValue(Object element, String property) { return ((MetadataRepositoryElement) element).getName(); } public void modify(Object element, String property, Object value) { if (value != null && value.toString().length() >= 0) { MetadataRepositoryElement repo; if (element instanceof Item) { repo = (MetadataRepositoryElement) ((Item) element).getData(); } else if (element instanceof MetadataRepositoryElement) { repo = (MetadataRepositoryElement) element; } else { return; } if (!value.toString().equals(repo.getName())) { changed = true; repo.setNickname(value.toString()); if (comparator.getSortKey() == RepositoryDetailsLabelProvider.COL_NAME) repositoryViewer.refresh(true); else repositoryViewer.update(repo, null); } } } }); repositoryViewer.setColumnProperties(new String[] { "nickname" }); //$NON-NLS-1$ repositoryViewer.setCellEditors(new CellEditor[] { new TextCellEditor(repositoryViewer.getTable()) }); repositoryViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { if (policy.getRepositoriesVisible()) validateButtons(); setDetails(); } }); repositoryViewer.setCheckStateProvider(new ICheckStateProvider() { public boolean isChecked(Object element) { return ((MetadataRepositoryElement) element).isEnabled(); } public boolean isGrayed(Object element) { return false; } }); repositoryViewer.addCheckStateListener(new ICheckStateListener() { public void checkStateChanged(CheckStateChangedEvent event) { MetadataRepositoryElement element = (MetadataRepositoryElement) event.getElement(); element.setEnabled(event.getChecked()); // paranoid that an equal but not identical element was passed in as the selection. // update the cache map just in case. getInput().put(element); // update the viewer to show the change updateForEnablementChange(new MetadataRepositoryElement[] { element }); } }); // Input last repositoryViewer.setInput(getInput()); GridData data = new GridData(SWT.FILL, SWT.FILL, true, true); data.widthHint = convertWidthInCharsToPixels(ILayoutConstants.DEFAULT_TABLE_WIDTH); data.heightHint = convertHeightInCharsToPixels(ILayoutConstants.DEFAULT_TABLE_HEIGHT); table.setLayoutData(data); // Drop targets and vertical buttons only if repository manipulation is provided. if (policy.getRepositoriesVisible()) { DropTarget target = new DropTarget(table, DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK); target.setTransfer(new Transfer[] { URLTransfer.getInstance(), FileTransfer.getInstance() }); target.addDropListener(new RepositoryManipulatorDropTarget(ui, table)); // Vertical buttons Composite verticalButtonBar = createVerticalButtonBar(composite); data = new GridData(SWT.FILL, SWT.FILL, false, false); data.verticalAlignment = SWT.TOP; data.verticalIndent = 0; verticalButtonBar.setLayoutData(data); listener = getViewerProvisioningListener(); ProvUI.getProvisioningEventBus(ui.getSession()).addListener(listener); composite.addDisposeListener(new DisposeListener() { public void widgetDisposed(DisposeEvent event) { ProvUI.getProvisioningEventBus(ui.getSession()).removeListener(listener); } }); validateButtons(); } // Details area details = new Text(composite, SWT.READ_ONLY | SWT.WRAP); data = new GridData(SWT.FILL, SWT.FILL, true, false); data.heightHint = convertHeightInCharsToPixels(ILayoutConstants.DEFAULT_SITEDETAILS_HEIGHT); details.setLayoutData(data); Dialog.applyDialogFont(composite); return composite; }
From source file:org.eclipse.gmf.internal.graphdef.codegen.ui.FigureGeneratorOptionsDialog.java
License:Open Source License
protected Control createDialogArea(Composite parent) { Composite result = (Composite) super.createDialogArea(parent); GridLayout layout = new GridLayout(); layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN); layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN); layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING); layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING); result.setLayout(layout);/* www . j av a 2 s.c o m*/ createControls(result); setTitle("Generator Model Options"); warnLiteVerstionDoesNotSupportMapMode(); Dialog.applyDialogFont(result); return result; }
From source file:org.eclipse.jpt.jpa.ui.internal.prefs.JpaPreferencesPage.java
License:Open Source License
/** * {@inheritDoc}//from w w w . ja v a2s .co m */ @Override protected Control createContents(Composite parent) { this.initializeDialogUnits(parent); parent = new Composite(parent, SWT.NONE); GridLayout layout = new GridLayout(1, false); layout.marginWidth = 0; layout.marginHeight = 0; layout.verticalSpacing = this.convertVerticalDLUsToPixels(10); layout.horizontalSpacing = this.convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING); parent.setLayout(layout); Label description = new Label(parent, SWT.NONE); description.setText(JptJpaUiMessages.JpaPreferencesPage_description); this.addEntityGenGroup(parent); this.addJpqlEditorGroup(parent); Dialog.applyDialogFont(parent); return parent; }
From source file:org.eclipse.jpt.jpa.ui.internal.prefs.JptPreferencesPage.java
License:Open Source License
@Override protected Control createContents(Composite parent) { Composite container = new Composite(parent, SWT.NONE); GridLayout layout = new GridLayout(); layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN); layout.marginWidth = 0;//from w w w. j a va 2 s . co m layout.verticalSpacing = convertVerticalDLUsToPixels(10); layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING); container.setLayout(layout); layout = new GridLayout(); layout.numColumns = 2; Group dontAskGroup = new Group(container, SWT.NONE); dontAskGroup.setLayout(layout); dontAskGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); dontAskGroup.setText(JptJpaUiMessages.JptPreferencesPage_DoNotShowDialogs); Label label = new Label(dontAskGroup, SWT.WRAP); label.setText(JptJpaUiMessages.JptPreferencesPage_DoNotShowText); GridData data = new GridData(GridData.FILL, GridData.CENTER, true, false); data.widthHint = convertVerticalDLUsToPixels(50); label.setLayoutData(data); Button button = new Button(dontAskGroup, SWT.PUSH); button.setText(JptJpaUiMessages.JptPreferencesPage_ClearButtonText); button.setLayoutData(new GridData(GridData.FILL, GridData.BEGINNING, false, false)); button.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { unhideAllDialogs(); } public void widgetDefaultSelected(SelectionEvent e) { unhideAllDialogs(); } }); return container; }
From source file:org.eclipse.jsch.internal.ui.preference.ExportDialog.java
License:Open Source License
protected Control createDialogArea(Composite parent) { initializeDialogUnits(parent);/*w w w. ja va2 s .c o m*/ Composite main = new Composite(parent, SWT.NONE); GridLayout layout = new GridLayout(); layout.numColumns = 2; layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN); layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN); layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING); layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING); main.setLayout(layout); main.setLayoutData(new GridData(GridData.FILL_BOTH)); if (message != null) { Label messageLabel = new Label(main, SWT.WRAP); messageLabel.setText(message); GridData data = new GridData(GridData.FILL_HORIZONTAL); data.horizontalSpan = 2; messageLabel.setLayoutData(data); } createTargetFields(main); Dialog.applyDialogFont(main); return main; }
From source file:org.eclipse.jsch.internal.ui.preference.PassphraseDialog.java
License:Open Source License
protected Control createDialogArea(Composite parent) { initializeDialogUnits(parent);/*w w w . j a v a2 s .co m*/ Composite main = new Composite(parent, SWT.NONE); GridLayout layout = new GridLayout(); layout.numColumns = 3; layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN); layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN); layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING); layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING); main.setLayout(layout); main.setLayoutData(new GridData(GridData.FILL_BOTH)); if (message != null) { Label messageLabel = new Label(main, SWT.WRAP); messageLabel.setText(message); GridData data = new GridData(GridData.FILL_HORIZONTAL); data.horizontalSpan = 3; messageLabel.setLayoutData(data); } createPassphraseFields(main); Dialog.applyDialogFont(main); return main; }
From source file:org.eclipse.jsch.internal.ui.preference.PreferencePage.java
License:Open Source License
private Control createGeneralPage(Composite parent) { Composite group = new Composite(parent, SWT.NULL); GridLayout layout = new GridLayout(); layout.numColumns = 3;/*from w w w . j a va 2s. c om*/ layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN); layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN); layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING); layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING); group.setLayout(layout); GridData data = new GridData(); data.horizontalAlignment = GridData.FILL; group.setLayoutData(data); ssh2HomeLabel = new Label(group, SWT.NONE); ssh2HomeLabel.setText(Messages.CVSSSH2PreferencePage_23); ssh2HomeText = new Text(group, SWT.SINGLE | SWT.BORDER); ssh2HomeText.setFont(group.getFont()); GridData gd = new GridData(GridData.FILL_HORIZONTAL); gd.horizontalSpan = 1; ssh2HomeText.setLayoutData(gd); ssh2HomeBrowse = new Button(group, SWT.NULL); ssh2HomeBrowse.setText(Messages.CVSSSH2PreferencePage_24); gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL); gd.horizontalSpan = 1; ssh2HomeBrowse.setLayoutData(gd); createSpacer(group, 3); privateKeyLabel = new Label(group, SWT.NONE); privateKeyLabel.setText(Messages.CVSSSH2PreferencePage_25); privateKeyText = new Text(group, SWT.SINGLE | SWT.BORDER); privateKeyText.setFont(group.getFont()); gd = new GridData(GridData.FILL_HORIZONTAL); gd.horizontalSpan = 1; privateKeyText.setLayoutData(gd); privateKeyAdd = new Button(group, SWT.NULL); privateKeyAdd.setText(Messages.CVSSSH2PreferencePage_26); gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL); gd.horizontalSpan = 1; privateKeyAdd.setLayoutData(gd); ssh2HomeBrowse.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { String home = ssh2HomeText.getText(); if (!new File(home).exists()) { while (true) { int foo = home.lastIndexOf(java.io.File.separator, home.length()); if (foo == -1) break; home = home.substring(0, foo); if (new File(home).exists()) break; } } DirectoryDialog dd = new DirectoryDialog(getShell()); dd.setFilterPath(home); dd.setMessage(Messages.CVSSSH2PreferencePage_27); String dir = dd.open(); if (dir == null) { // cancel return; } ssh2HomeText.setText(dir); } }); privateKeyAdd.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { String home = ssh2HomeText.getText(); FileDialog fd = new FileDialog(getShell(), SWT.OPEN | SWT.MULTI); fd.setFilterPath(home); Object o = fd.open(); if (o == null) { // cancel return; } String[] files = fd.getFileNames(); String keys = privateKeyText.getText(); String dir = fd.getFilterPath(); if (dir.equals(home)) { dir = ""; //$NON-NLS-1$ } else { dir += java.io.File.separator; } for (int i = 0; i < files.length; i++) { String foo = files[i]; if (keys.length() != 0) keys = keys + ","; //$NON-NLS-1$ keys = keys + dir + foo; } privateKeyText.setText(keys); } }); return group; }
From source file:org.eclipse.jsch.internal.ui.preference.PreferencePage.java
License:Open Source License
private Control createKeyManagementPage(Composite parent) { int columnSpan = 3; Composite group = new Composite(parent, SWT.NULL); GridLayout layout = new GridLayout(); layout.numColumns = 3;/* w w w . ja v a2s. c om*/ layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN); layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN); layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING); layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING); group.setLayout(layout); GridData gd = new GridData(); gd.horizontalAlignment = GridData.FILL; group.setLayoutData(gd); keyGenerateDSA = new Button(group, SWT.NULL); keyGenerateDSA.setText(Messages.CVSSSH2PreferencePage_131); gd = new GridData(); gd.horizontalSpan = 1; keyGenerateDSA.setLayoutData(gd); keyGenerateRSA = new Button(group, SWT.NULL); keyGenerateRSA.setText(Messages.CVSSSH2PreferencePage_132); gd = new GridData(); gd.horizontalSpan = 1; keyGenerateRSA.setLayoutData(gd); keyLoad = new Button(group, SWT.NULL); keyLoad.setText(Messages.CVSSSH2PreferencePage_128); gd = new GridData(); gd.horizontalSpan = 1; keyLoad.setLayoutData(gd); publicKeylabel = new Label(group, SWT.NONE); publicKeylabel.setText(Messages.CVSSSH2PreferencePage_39); gd = new GridData(); gd.horizontalSpan = columnSpan; publicKeylabel.setLayoutData(gd); publicKeyText = new Text(group, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.WRAP | SWT.LEFT_TO_RIGHT); publicKeyText.setText(""); //$NON-NLS-1$ publicKeyText.setEditable(false); gd = new GridData(); gd.horizontalSpan = columnSpan; gd.horizontalAlignment = GridData.FILL; gd.verticalAlignment = GridData.FILL; gd.grabExcessHorizontalSpace = true; gd.grabExcessVerticalSpace = true; publicKeyText.setLayoutData(gd); keyFingerPrintLabel = new Label(group, SWT.NONE); keyFingerPrintLabel.setText(Messages.CVSSSH2PreferencePage_41); keyFingerPrintText = new Text(group, SWT.SINGLE | SWT.BORDER | SWT.LEFT_TO_RIGHT); keyFingerPrintText.setFont(group.getFont()); keyFingerPrintText.setEditable(false); gd = new GridData(GridData.FILL_HORIZONTAL); gd.horizontalSpan = 2; keyFingerPrintText.setLayoutData(gd); keyCommentLabel = new Label(group, SWT.NONE); keyCommentLabel.setText(Messages.CVSSSH2PreferencePage_42); keyCommentText = new Text(group, SWT.SINGLE | SWT.BORDER); keyCommentText.setFont(group.getFont()); gd = new GridData(GridData.FILL_HORIZONTAL); gd.horizontalSpan = 2; keyCommentText.setLayoutData(gd); keyCommentText.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { if (kpair == null) return; try { ByteArrayOutputStream out = new ByteArrayOutputStream(); kpairComment = keyCommentText.getText(); kpair.writePublicKey(out, kpairComment); out.close(); publicKeyText.setText(out.toString()); } catch (IOException ee) { // Ignore } } }); keyPassphrase1Label = new Label(group, SWT.NONE); keyPassphrase1Label.setText(Messages.CVSSSH2PreferencePage_43); keyPassphrase1Text = new Text(group, SWT.SINGLE | SWT.BORDER); keyPassphrase1Text.setFont(group.getFont()); keyPassphrase1Text.setEchoChar('*'); gd = new GridData(GridData.FILL_HORIZONTAL); gd.horizontalSpan = 2; keyPassphrase1Text.setLayoutData(gd); keyPassphrase2Label = new Label(group, SWT.NONE); keyPassphrase2Label.setText(Messages.CVSSSH2PreferencePage_44); keyPassphrase2Text = new Text(group, SWT.SINGLE | SWT.BORDER); keyPassphrase2Text.setFont(group.getFont()); keyPassphrase2Text.setEchoChar('*'); gd = new GridData(GridData.FILL_HORIZONTAL); gd.horizontalSpan = 2; keyPassphrase2Text.setLayoutData(gd); keyPassphrase1Text.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { String pass1 = keyPassphrase1Text.getText(); String pass2 = keyPassphrase2Text.getText(); if (kpair != null && pass1.equals(pass2)) { saveKeyPair.setEnabled(true); } else { saveKeyPair.setEnabled(false); } if (pass2.length() == 0) { setErrorMessage(null); return; } if (pass1.equals(pass2)) { setErrorMessage(null); } else { setErrorMessage(Messages.CVSSSH2PreferencePage_48); } } }); keyPassphrase2Text.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { String pass1 = keyPassphrase1Text.getText(); String pass2 = keyPassphrase2Text.getText(); if (kpair != null && pass1.equals(pass2)) { saveKeyPair.setEnabled(true); } else { saveKeyPair.setEnabled(false); } if (pass2.length() < pass1.length()) { if (pass1.startsWith(pass2)) { setErrorMessage(null); } else { setErrorMessage(Messages.CVSSSH2PreferencePage_48); } return; } if (pass1.equals(pass2)) { setErrorMessage(null); } else { setErrorMessage(Messages.CVSSSH2PreferencePage_48); } } }); keyPassphrase2Text.addFocusListener(new FocusListener() { public void focusGained(FocusEvent e) { String pass1 = keyPassphrase1Text.getText(); String pass2 = keyPassphrase2Text.getText(); if (pass2.length() < pass1.length()) { if (pass1.startsWith(pass2)) { setErrorMessage(null); } else { setErrorMessage(Messages.CVSSSH2PreferencePage_48); } return; } if (pass1.equals(pass2)) { setErrorMessage(null); } else { setErrorMessage(Messages.CVSSSH2PreferencePage_48); } } public void focusLost(FocusEvent e) { String pass1 = keyPassphrase1Text.getText(); String pass2 = keyPassphrase2Text.getText(); if (pass1.equals(pass2)) { setErrorMessage(null); } else { setErrorMessage(Messages.CVSSSH2PreferencePage_48); } } }); Composite buttons = new Composite(group, SWT.NONE); layout = new GridLayout(2, true); layout.marginWidth = 0; layout.marginHeight = 0; layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING); buttons.setLayout(layout); gd = new GridData(GridData.HORIZONTAL_ALIGN_END); gd.horizontalSpan = columnSpan; buttons.setLayoutData(gd); keyExport = new Button(buttons, SWT.NULL); keyExport.setText(Messages.CVSSSH2PreferencePage_105); gd = new GridData(GridData.FILL_BOTH); keyExport.setLayoutData(gd); saveKeyPair = new Button(buttons, SWT.NULL); saveKeyPair.setText(Messages.CVSSSH2PreferencePage_45); gd = new GridData(GridData.FILL_BOTH); saveKeyPair.setLayoutData(gd); SelectionAdapter keygenadapter = new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { boolean ok = true; String _type = ""; //$NON-NLS-1$ try { int type = 0; if (e.widget == keyGenerateDSA) { type = KeyPair.DSA; _type = IConstants.DSA; } else if (e.widget == keyGenerateRSA) { type = KeyPair.RSA; _type = IConstants.RSA; } else { return; } final KeyPair[] _kpair = new KeyPair[1]; final int __type = type; final JSchException[] _e = new JSchException[1]; BusyIndicator.showWhile(getShell().getDisplay(), new Runnable() { public void run() { try { _kpair[0] = KeyPair.genKeyPair(getJSch(), __type); } catch (JSchException e) { _e[0] = e; } } }); if (_e[0] != null) { throw _e[0]; } kpair = _kpair[0]; ByteArrayOutputStream out = new ByteArrayOutputStream(); kpairComment = _type + "-1024"; //$NON-NLS-1$ kpair.writePublicKey(out, kpairComment); out.close(); publicKeyText.setText(out.toString()); keyFingerPrintText.setText(kpair.getFingerPrint()); keyCommentText.setText(kpairComment); keyPassphrase1Text.setText(""); //$NON-NLS-1$ keyPassphrase2Text.setText(""); //$NON-NLS-1$ updateControls(); } catch (IOException ee) { ok = false; } catch (JSchException ee) { ok = false; } if (!ok) { MessageDialog.openError(getShell(), Messages.CVSSSH2PreferencePage_error, Messages.CVSSSH2PreferencePage_47); } } }; keyGenerateDSA.addSelectionListener(keygenadapter); keyGenerateRSA.addSelectionListener(keygenadapter); keyLoad.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { boolean ok = true; String home = ssh2HomeText.getText(); FileDialog fd = new FileDialog(getShell(), SWT.OPEN); fd.setFilterPath(home); Object o = fd.open(); if (o == null) { // cancel return; } String pkey = fd.getFileName(); String pkeyab = (new File(fd.getFilterPath(), pkey)).getAbsolutePath(); try { KeyPair _kpair = KeyPair.load(getJSch(), pkeyab); PassphrasePrompt prompt = null; while (_kpair.isEncrypted()) { if (prompt == null) { prompt = new PassphrasePrompt( NLS.bind(Messages.CVSSSH2PreferencePage_126, new String[] { pkey })); } Display.getDefault().syncExec(prompt); String passphrase = prompt.getPassphrase(); if (passphrase == null) break; if (_kpair.decrypt(passphrase)) { break; } MessageDialog.openError(getShell(), Messages.CVSSSH2PreferencePage_error, NLS.bind(Messages.CVSSSH2PreferencePage_129, new String[] { pkey })); } if (_kpair.isEncrypted()) { return; } kpair = _kpair; String _type = (kpair.getKeyType() == KeyPair.DSA) ? IConstants.DSA : IConstants.RSA; kpairComment = _type + "-1024"; //$NON-NLS-1$ // TODO Bug 351094 The comment should be from kpair object, // but the JSch API does not provided such a method. // In the version 0.1.45, JSch will support such a method, // and the following code should be replaced with it at that time. java.io.FileInputStream fis = null; try { java.io.File f = new java.io.File(pkeyab + ".pub"); //$NON-NLS-1$ int i = 0; fis = new java.io.FileInputStream(f); byte[] buf = new byte[(int) f.length()]; while (i < buf.length) { int j = fis.read(buf, i, buf.length - i); if (j <= 0) break; i += j; } String pubkey = new String(buf); if (pubkey.indexOf(' ') > 0 && pubkey.indexOf(' ', pubkey.indexOf(' ') + 1) > 0) { int j = pubkey.indexOf(' ', pubkey.indexOf(' ') + 1) + 1; kpairComment = pubkey.substring(j); if (kpairComment.indexOf('\n') > 0) { kpairComment = kpairComment.substring(0, kpairComment.indexOf('\n')); } } } catch (IOException ioe) { // ignore if public-key does not exist. } finally { if (fis != null) fis.close(); } ByteArrayOutputStream out = new ByteArrayOutputStream(); kpair.writePublicKey(out, kpairComment); out.close(); publicKeyText.setText(out.toString()); keyFingerPrintText.setText(kpair.getFingerPrint()); keyCommentText.setText(kpairComment); keyPassphrase1Text.setText(""); //$NON-NLS-1$ keyPassphrase2Text.setText(""); //$NON-NLS-1$ updateControls(); } catch (IOException ee) { ok = false; } catch (JSchException ee) { ok = false; } if (!ok) { MessageDialog.openError(getShell(), Messages.CVSSSH2PreferencePage_error, Messages.CVSSSH2PreferencePage_130); } } }); keyExport.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { if (kpair == null) return; setErrorMessage(null); final String[] target = new String[1]; final String title = Messages.CVSSSH2PreferencePage_106; final String message = Messages.CVSSSH2PreferencePage_107; Display.getDefault().syncExec(new Runnable() { public void run() { Display display = Display.getCurrent(); Shell shell = new Shell(display); ExportDialog dialog = new ExportDialog(shell, title, message); dialog.open(); shell.dispose(); target[0] = dialog.getTarget(); } }); if (target[0] == null) { return; } String user = ""; //$NON-NLS-1$ String host = ""; //$NON-NLS-1$ int port = 22; if (target[0].indexOf('@') > 0) { user = target[0].substring(0, target[0].indexOf('@')); host = target[0].substring(target[0].indexOf('@') + 1); } if (host.indexOf(':') > 0) { try { port = Integer.parseInt(host.substring(host.indexOf(':') + 1)); } catch (NumberFormatException ee) { port = -1; } host = host.substring(0, host.indexOf(':')); } if (user.length() == 0 || host.length() == 0 || port == -1) { setErrorMessage(NLS.bind(Messages.CVSSSH2PreferencePage_108, new String[] { target[0] })); return; } String options = ""; //$NON-NLS-1$ try { ByteArrayOutputStream bos = new ByteArrayOutputStream(); if (options.length() != 0) { try { bos.write((options + " ").getBytes()); //$NON-NLS-1$ } catch (IOException eeee) { // Ignore } } kpair.writePublicKey(bos, kpairComment); bos.close(); export_via_sftp(user, host, port, /* ".ssh/authorized_keys", //$NON-NLS-1$ */ bos.toByteArray()); } catch (IOException ee) { // Ignore } catch (JSchException ee) { setErrorMessage(Messages.CVSSSH2PreferencePage_111); } } }); saveKeyPair.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { if (kpair == null) return; String pass = keyPassphrase1Text.getText(); /* * if(!pass.equals(keyPassphrase2Text.getText())){ * setErrorMessage(Policy.bind("CVSSSH2PreferencePage.48")); * //$NON-NLS-1$ return; } */ if (pass.length() == 0) { if (!MessageDialog.openConfirm(getShell(), Messages.CVSSSH2PreferencePage_confirmation, Messages.CVSSSH2PreferencePage_49)) { return; } } kpair.setPassphrase(pass); String home = ssh2HomeText.getText(); File _home = new File(home); if (!_home.exists()) { if (!MessageDialog.openConfirm(getShell(), Messages.CVSSSH2PreferencePage_confirmation, NLS.bind(Messages.CVSSSH2PreferencePage_50, new String[] { home }))) { return; } if (!_home.mkdirs()) { setErrorMessage(Messages.CVSSSH2PreferencePage_100 + home); return; } } FileDialog fd = new FileDialog(getShell(), SWT.SAVE); fd.setFilterPath(home); String file = (kpair.getKeyType() == KeyPair.RSA) ? "id_rsa" : "id_dsa"; //$NON-NLS-1$ //$NON-NLS-2$ fd.setFileName(file); file = fd.open(); if (file == null) { // cancel return; } if (new File(file).exists()) { if (!MessageDialog.openConfirm(getShell(), Messages.CVSSSH2PreferencePage_confirmation, // NLS.bind(Messages.CVSSSH2PreferencePage_53, new String[] { file }))) { return; } } boolean ok = true; try { kpair.writePrivateKey(file); kpair.writePublicKey(file + ".pub", kpairComment); //$NON-NLS-1$ } catch (Exception ee) { ok = false; } if (ok) { MessageDialog.openInformation(getShell(), Messages.CVSSSH2PreferencePage_information, Messages.CVSSSH2PreferencePage_55 + "\n" + //$NON-NLS-1$ Messages.CVSSSH2PreferencePage_57 + file + "\n" + //$NON-NLS-1$ Messages.CVSSSH2PreferencePage_59 + file + ".pub"); //$NON-NLS-1$ } else { return; } // The generated key should be added to privateKeyText. String dir = fd.getFilterPath(); File mypkey = new java.io.File(dir, fd.getFileName()); String pkeys = privateKeyText.getText(); // Check if the generated key has been included in pkeys? String[] pkeysa = pkeys.split(","); //$NON-NLS-1$ for (int i = 0; i < pkeysa.length; i++) { File pkey = new java.io.File(pkeysa[i]); if (!pkey.isAbsolute()) { pkey = new java.io.File(home, pkeysa[i]); } if (pkey.equals(mypkey)) return; } if (dir.equals(home)) { dir = ""; //$NON-NLS-1$ } else { dir += java.io.File.separator; } if (pkeys.length() > 0) pkeys += ","; //$NON-NLS-1$ pkeys = pkeys + dir + fd.getFileName(); privateKeyText.setText(pkeys); } }); return group; }
From source file:org.eclipse.jsch.internal.ui.preference.PreferencePage.java
License:Open Source License
private Control createHostKeyManagementPage(Composite parent) { Composite group = new Composite(parent, SWT.NULL); GridLayout layout = new GridLayout(); layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN); layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN); layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING); layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING); layout.numColumns = 2;/*from www.j av a2 s . c o m*/ group.setLayout(layout); GridData gd = new GridData(); gd.horizontalAlignment = GridData.FILL; gd.verticalAlignment = GridData.FILL; group.setLayoutData(gd); Label label = new Label(group, SWT.NONE); label.setText(Messages.CVSSSH2PreferencePage_139); gd = new GridData(); gd.horizontalSpan = 2; label.setLayoutData(gd); viewer = new TableViewer(group, SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); Table table = viewer.getTable(); new TableEditor(table); table.setHeaderVisible(true); table.setLinesVisible(true); gd = new GridData(GridData.FILL_BOTH); gd.widthHint = convertWidthInCharsToPixels(30); /* * The hardcoded hint does not look elegant, but in reality it does not make * anything bound to this 100-pixel value, because in any case the tree on * the left is taller and that's what really determines the height. */ gd.heightHint = 100; table.setLayoutData(gd); table.addListener(SWT.Selection, new Listener() { public void handleEvent(Event e) { handleSelection(); } }); // Create the table columns new TableColumn(table, SWT.NULL); new TableColumn(table, SWT.NULL); new TableColumn(table, SWT.NULL); TableColumn[] columns = table.getColumns(); columns[0].setText(Messages.CVSSSH2PreferencePage_134); columns[1].setText(Messages.CVSSSH2PreferencePage_135); columns[2].setText(Messages.CVSSSH2PreferencePage_136); viewer.setColumnProperties(new String[] { Messages.CVSSSH2PreferencePage_134, // Messages.CVSSSH2PreferencePage_135, // Messages.CVSSSH2PreferencePage_136 }); viewer.setLabelProvider(new TableLabelProvider()); viewer.setContentProvider(new IStructuredContentProvider() { public void dispose() { // nothing to do } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { // nothing to do } public Object[] getElements(Object inputElement) { if (inputElement == null) return null; return (Object[]) inputElement; } }); TableLayout tl = new TableLayout(); tl.addColumnData(new ColumnWeightData(30)); tl.addColumnData(new ColumnWeightData(20)); tl.addColumnData(new ColumnWeightData(70)); table.setLayout(tl); Composite buttons = new Composite(group, SWT.NULL); buttons.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING)); layout = new GridLayout(); layout.marginHeight = 0; layout.marginWidth = 0; buttons.setLayout(layout); removeHostKeyButton = new Button(buttons, SWT.PUSH); removeHostKeyButton.setText(Messages.CVSSSH2PreferencePage_138); int buttonWidth = SWTUtils.calculateControlSize(SWTUtils.createDialogPixelConverter(parent), new Button[] { removeHostKeyButton }); removeHostKeyButton.setLayoutData( SWTUtils.createGridData(buttonWidth, SWT.DEFAULT, SWT.END, SWT.CENTER, false, false)); removeHostKeyButton.setEnabled(false); removeHostKeyButton.addListener(SWT.Selection, new Listener() { public void handleEvent(Event e) { removeHostKey(); } }); Dialog.applyDialogFont(parent); // JSchSession.loadKnownHosts(JSchContext.getDefaultContext().getJSch()); JSchCorePlugin.getPlugin().loadKnownHosts(); HostKeyRepository hkr = getJSch().getHostKeyRepository(); viewer.setInput(hkr.getHostKey()); handleSelection(); return group; }