public CloudAttachDialog(@NotNull Project project) { super(project, true); myProject = project; init(); initValidation(); setTitle(GctBundle.getString("clouddebug.attachtitle")); setOKButtonText(GctBundle.getString("clouddebug.attach")); mySyncStashCheckbox.setVisible(false); mySyncStashCheckbox.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if (mySyncStashCheckbox.isVisible()) { myWarningLabel.setVisible(!mySyncStashCheckbox.isSelected()); myWarningLabel2.setVisible(!mySyncStashCheckbox.isSelected()); myInfoPanel.setVisible(mySyncStashCheckbox.isSelected()); if (mySyncStashCheckbox.isSelected()) { setOKButtonText( isContinued() ? GctBundle.getString("clouddebug.continuesession") : GctBundle.getString("clouddebug.attach")); } else { setOKButtonText( isContinued() ? GctBundle.getString("clouddebug.continueanyway") : GctBundle.getString("clouddebug.attach.anyway")); } } } }); myWarningLabel.setVisible(false); myWarningLabel.setFont( new Font( myWarningLabel.getFont().getName(), Font.BOLD, myWarningLabel.getFont().getSize() - 1)); myWarningLabel.setForeground(JBColor.RED); myWarningLabel2.setVisible(false); myWarningLabel2.setFont( new Font( myWarningLabel2.getFont().getName(), Font.PLAIN, myWarningLabel.getFont().getSize() - 1)); myWarningLabel2.setText(GctBundle.getString("clouddebug.sourcedoesnotmatch")); myInfoPanel.setFont( new Font( myWarningLabel2.getFont().getName(), Font.PLAIN, myWarningLabel.getFont().getSize() - 1)); Border paddingBorder = BorderFactory.createEmptyBorder(2, 0, 2, 0); myInfoPanel.setBorder(paddingBorder); Window myWindow = getWindow(); if (myWindow != null) { myWindow.setPreferredSize(new Dimension(355, 175)); } BasicAction.saveAll(); myWireup = new ProjectDebuggeeBinding(myElysiumProjectId, myDebuggeeTarget); myDebuggeeTarget.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { buildResult(); checkSyncStashState(); setOKActionEnabled(doValidate() == null); } }); setOKActionEnabled(isContinued() || doValidate() == null); }
public GoToHashOrRefPopup( @NotNull final Project project, @NotNull Collection<VcsRef> variants, Collection<VirtualFile> roots, @NotNull Function<String, Future> onSelectedHash, @NotNull Function<VcsRef, Future> onSelectedRef, @NotNull VcsLogColorManager colorManager, @NotNull Comparator<VcsRef> comparator) { myOnSelectedHash = onSelectedHash; myOnSelectedRef = onSelectedRef; myTextField = new TextFieldWithProgress<VcsRef>( project, new VcsRefCompletionProvider(project, variants, roots, colorManager, comparator)) { @Override public void onOk() { if (myFuture == null) { final Future future = ((mySelectedRef == null || (!mySelectedRef.getName().equals(getText().trim()))) ? myOnSelectedHash.fun(getText().trim()) : myOnSelectedRef.fun(mySelectedRef)); myFuture = future; showProgress(); ApplicationManager.getApplication() .executeOnPooledThread( new Runnable() { @Override public void run() { try { future.get(); okPopup(); } catch (CancellationException ex) { cancelPopup(); } catch (InterruptedException ex) { cancelPopup(); } catch (ExecutionException ex) { LOG.error(ex); cancelPopup(); } } }); } } }; myTextField.setAlignmentX(Component.LEFT_ALIGNMENT); JBLabel label = new JBLabel("Enter hash or branch/tag name:"); label.setFont(UIUtil.getLabelFont().deriveFont(Font.BOLD)); label.setAlignmentX(Component.LEFT_ALIGNMENT); JPanel panel = new JPanel(); BoxLayout layout = new BoxLayout(panel, BoxLayout.PAGE_AXIS); panel.setLayout(layout); panel.add(label); panel.add(myTextField); panel.setBorder(new EmptyBorder(2, 2, 2, 2)); myPopup = JBPopupFactory.getInstance() .createComponentPopupBuilder(panel, myTextField.getPreferableFocusComponent()) .setCancelOnClickOutside(true) .setCancelOnWindowDeactivation(true) .setCancelKeyEnabled(true) .setRequestFocus(true) .createPopup(); myPopup.addListener( new JBPopupListener.Adapter() { @Override public void onClosed(LightweightWindowEvent event) { if (!event.isOk()) { if (myFuture != null) { myFuture.cancel(true); } } myFuture = null; myTextField.hideProgress(); } }); }
public HTTPProxySettingsPanel(final HttpConfigurable httpConfigurable) { final ButtonGroup group = new ButtonGroup(); group.add(myUseHTTPProxyRb); group.add(myAutoDetectProxyRb); group.add(myNoProxyRb); myNoProxyRb.setSelected(true); final ButtonGroup proxyTypeGroup = new ButtonGroup(); proxyTypeGroup.add(myHTTP); proxyTypeGroup.add(mySocks); myHTTP.setSelected(true); myProxyExceptions.setBorder(UIUtil.getTextFieldBorder()); final Boolean property = Boolean.getBoolean(JavaProxyProperty.USE_SYSTEM_PROXY); mySystemProxyDefined.setVisible(Boolean.TRUE.equals(property)); if (Boolean.TRUE.equals(property)) { mySystemProxyDefined.setIcon(Messages.getWarningIcon()); mySystemProxyDefined.setFont(mySystemProxyDefined.getFont().deriveFont(Font.BOLD)); mySystemProxyDefined.setUI(new MultiLineLabelUI()); } myProxyAuthCheckBox.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { enableProxyAuthentication(myProxyAuthCheckBox.isSelected()); } }); myPacUrlCheckBox.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { myPacUrlTextField.setEnabled(myPacUrlCheckBox.isSelected()); } }); final ActionListener listener = new ActionListener() { public void actionPerformed(ActionEvent e) { enableProxy(myUseHTTPProxyRb.isSelected()); } }; myUseHTTPProxyRb.addActionListener(listener); myAutoDetectProxyRb.addActionListener(listener); myNoProxyRb.addActionListener(listener); myHttpConfigurable = httpConfigurable; myClearPasswordsButton.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { myHttpConfigurable.clearGenericPasswords(); Messages.showMessageDialog( myMainPanel, "Proxy passwords were cleared.", "Auto-detected proxy", Messages.getInformationIcon()); } }); if (HttpConfigurable.getInstance() != null) { myCheckButton.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { final String title = "Check Proxy Settings"; final String answer = Messages.showInputDialog( myMainPanel, "Warning: your settings will be saved.\n\nEnter any URL to check connection to:", title, Messages.getQuestionIcon(), "http://", null); if (!StringUtil.isEmptyOrSpaces(answer)) { apply(); final HttpConfigurable instance = HttpConfigurable.getInstance(); final AtomicReference<IOException> exc = new AtomicReference<IOException>(); myCheckButton.setEnabled(false); myCheckButton.setText("Check connection (in progress...)"); myConnectionCheckInProgress = true; final Application application = ApplicationManager.getApplication(); application.executeOnPooledThread( new Runnable() { @Override public void run() { HttpURLConnection connection = null; try { // already checked for null above //noinspection ConstantConditions connection = instance.openHttpConnection(answer); connection.setReadTimeout(3 * 1000); connection.setConnectTimeout(3 * 1000); connection.connect(); final int code = connection.getResponseCode(); if (HttpURLConnection.HTTP_OK != code) { exc.set(new IOException("Error code: " + code)); } } catch (IOException e1) { exc.set(e1); } finally { if (connection != null) { connection.disconnect(); } } //noinspection SSBasedInspection SwingUtilities.invokeLater( new Runnable() { @Override public void run() { myConnectionCheckInProgress = false; reset(); // since password might have been set Component parent = null; if (myMainPanel.isShowing()) { parent = myMainPanel; myCheckButton.setText("Check connection"); myCheckButton.setEnabled(canEnableConnectionCheck()); } else { final IdeFrame frame = IdeFocusManager.findInstance().getLastFocusedFrame(); if (frame == null) { return; } parent = frame.getComponent(); } //noinspection ThrowableResultOfMethodCallIgnored final IOException exception = exc.get(); if (exception == null) { Messages.showMessageDialog( parent, "Connection successful", title, Messages.getInformationIcon()); } else { final String message = exception.getMessage(); if (instance.USE_HTTP_PROXY) { instance.LAST_ERROR = message; } Messages.showErrorDialog(parent, errorText(message)); } } }); } }); } } }); } else { myCheckButton.setVisible(false); } }