public static IStatus connectWithPromptIfNeeded(IConnectionProfile profile, boolean reprompt) { String profileName = profile.getName(); Shell shell = Display.getCurrent().getActiveShell(); IStatus connectionStatus = null; ConnectionInfo info = null; if (profile != null) { if (shell == null) { connectionStatus = profile.connect(); } else { connectionStatus = profile.connectWithoutJob(); if (reprompt && profile.getConnectionState() != IConnectionProfile.CONNECTED_STATE && connectionStatus.getCode() != IStatus.OK) // could be marked OK if the profile can't be found for some reason { String title = NLS.bind(SQLNlsStrings.SQL_CONNECTION_FAILURE_MSG, profile.getName()); MessageDialog.openInformation( shell, title, connectionStatus.getChildren()[0].getException().getLocalizedMessage()); // Prompt to fix properties PropertyDialogAction propertyDialogAction = new PropertyDialogAction( new SameShellProvider(shell), new ConnectionPropertiesWizardSelectionProvider(profile)); StructuredSelection selection = new StructuredSelection(profile); propertyDialogAction.selectionChanged(selection); if (!profile.arePropertiesComplete() && propertyDialogAction.isApplicableForSelection()) { // something in createDialog is failing to initialize the properties correctly the first // time // around. I can't debug it because it crashes the debugger when I set a breakpoint, so // I'll // call twice for now to get the initialization to happen until I figure it out. PreferenceDialog dialog = propertyDialogAction.createDialog(); dialog = propertyDialogAction.createDialog(); String shellText = NLS.bind(SQLNlsStrings.SQL_CONNECTION_PROPERTIES_FOR, profile.getName()); dialog.getShell().setText(shellText); IConnectionProfileProvider provider = profile.getProvider(); IPropertiesPersistenceHook hook = ((ConnectionProfileProvider) provider).getPropertiesPersistenceHook(); String initialPage = hook.getConnectionPropertiesPageID(); if (initialPage != null) { ((IWorkbenchPreferenceContainer) dialog).openPage(initialPage, null); } if (dialog.open() == Dialog.CANCEL) { reprompt = false; } } if (reprompt) { connectionStatus = profile.connectWithoutJob(); } } } } return connectionStatus; }
/* (non-Javadoc) * @see org.eclipse.ui.dialogs.PropertyDialogAction#createDialog() */ public PreferenceDialog createDialog() { PreferenceDialog dialog = super.createDialog(); dialog .getShell() .setText( ResourceLoader.INSTANCE.queryString( "DATATOOLS.SERVER.UI.EXPLORER.PROPERTIES_DIALOG_TITLE")); //$NON-NLS-1$ return dialog; }
/** * Opens the network preferences page * * @return true if the user has confirmed the network configurations or false otherwise */ private boolean openNetworkPreferencesPage() { // Creates the dialog every time, because it is disposed when it is // closed. networkPreferencesDialog = new WorkbenchPreferenceDialog(this.getShell(), prefMan); networkPreferencesDialog.create(); centralizeShell(networkPreferencesDialog.getShell()); networkPreferencesDialog.open(); return networkPreferencesDialog.getReturnCode() == WorkbenchPreferenceDialog.OK; }
/** * Method creates tree structure of windows azure property pages. and opens property dialog with * desired property page selected & active. * * @param windowsAzureRole : worker role * @param pageToDisplay : property page Id which should be active after opening dialog * @return integer */ public static int openRolePropertyDialog( WindowsAzureRole windowsAzureRole, String pageToDisplay) { int retVal = Window.CANCEL; // value corresponding to cancel try { // Node creation PreferenceNode nodeGeneral = new PreferenceNode( Messages.cmhIdGeneral, Messages.cmhLblGeneral, null, WARGeneral.class.toString()); nodeGeneral.setPage(new WARGeneral()); nodeGeneral.getPage().setTitle(Messages.cmhLblGeneral); PreferenceNode nodeCache = new PreferenceNode( Messages.cmhIdCach, Messages.cmhLblCach, null, WARCaching.class.toString()); nodeCache.setPage(new WARCaching()); nodeCache.getPage().setTitle(Messages.cmhLblCach); PreferenceNode nodeCmpnts = new PreferenceNode( Messages.cmhIdCmpnts, Messages.cmhLblCmpnts, null, WARComponents.class.toString()); nodeCmpnts.setPage(new WARComponents()); nodeCmpnts.getPage().setTitle(Messages.cmhLblCmpnts); PreferenceNode nodeDebugging = new PreferenceNode( Messages.cmhIdDbg, Messages.cmhLblDbg, null, WARDebugging.class.toString()); nodeDebugging.setPage(new WARDebugging()); nodeDebugging.getPage().setTitle(Messages.cmhLblDbg); PreferenceNode nodeEndPts = new PreferenceNode( Messages.cmhIdEndPts, Messages.cmhLblEndPts, null, WAREndpoints.class.toString()); nodeEndPts.setPage(new WAREndpoints()); nodeEndPts.getPage().setTitle(Messages.cmhLblEndPts); PreferenceNode nodeEnvVars = new PreferenceNode( Messages.cmhIdEnvVars, Messages.cmhLblEnvVars, null, WAREnvVars.class.toString()); nodeEnvVars.setPage(new WAREnvVars()); nodeEnvVars.getPage().setTitle(Messages.cmhLblEnvVars); PreferenceNode nodeLdBlnc = new PreferenceNode( Messages.cmhIdLdBlnc, Messages.cmhLblLdBlnc, null, WARLoadBalance.class.toString()); nodeLdBlnc.setPage(new WARLoadBalance()); nodeLdBlnc.getPage().setTitle(Messages.cmhLblLdBlnc); PreferenceNode nodeLclStg = new PreferenceNode( Messages.cmhIdLclStg, Messages.cmhLblLclStg, null, WARLocalStorage.class.toString()); nodeLclStg.setPage(new WARLocalStorage()); nodeLclStg.getPage().setTitle(Messages.cmhLblLclStg); PreferenceNode nodeSrvCnfg = new PreferenceNode( Messages.cmhIdSrvCnfg, Messages.cmhLblSrvCnfg, null, WAServerConfiguration.class.toString()); nodeSrvCnfg.setPage(new WAServerConfiguration()); nodeSrvCnfg.getPage().setTitle(Messages.cmhLblSrvCnfg); /* * Tree structure creation. * Don't change order while adding nodes. * Its the default alphabetical order given by eclipse. */ nodeGeneral.add(nodeCache); nodeGeneral.add(nodeCmpnts); nodeGeneral.add(nodeDebugging); nodeGeneral.add(nodeEndPts); nodeGeneral.add(nodeEnvVars); nodeGeneral.add(nodeLdBlnc); nodeGeneral.add(nodeLclStg); nodeGeneral.add(nodeSrvCnfg); PreferenceManager mgr = new PreferenceManager(); mgr.addToRoot(nodeGeneral); // Dialog creation PreferenceDialog dialog = new PreferenceDialog(PlatformUI.getWorkbench().getDisplay().getActiveShell(), mgr); // make desired property page active. dialog.setSelectedNode(pageToDisplay); dialog.create(); String dlgTitle = String.format(Messages.cmhPropFor, windowsAzureRole.getName()); dialog.getShell().setText(dlgTitle); dialog.open(); // return whether user has pressed OK or Cancel button retVal = dialog.getReturnCode(); } catch (Exception ex) { PluginUtil.displayErrorDialogAndLog( new Shell(), Messages.rolsDlgErr, Messages.rolsDlgErrMsg, ex); } return retVal; }