List of usage examples for org.eclipse.jface.dialogs MessageDialog openQuestion
public static boolean openQuestion(Shell parent, String title, String message)
From source file:com.safi.server.manager.SafiServerRemoteManager.java
@Override public void handleNotification(final Notification notification, Object handback) { if (handback == serverMonitorHandback) { if (observeError && "error".equalsIgnoreCase(((AttributeChangeNotification) notification).getAttributeType())) { final Display d = PlatformUI.getWorkbench().getDisplay(); d.asyncExec(new Runnable() { @Override//from ww w . j av a 2 s . c om public void run() { // Shell sh = new Shell(); BooleanMessageDialogWithToggle.openInformation(d.getActiveShell(), ((AttributeChangeNotification) notification).getAttributeName(), notification.getMessage(), "Notify me of server info messages in the future", true, AsteriskDiagramEditorPlugin.getInstance().getPreferenceStore(), PreferenceConstants.PREF_SERVER_ERROR_NOTIFICATION); } }); } else if (observerInfo && "info".equalsIgnoreCase(((AttributeChangeNotification) notification).getAttributeType())) { final Display d = PlatformUI.getWorkbench().getDisplay(); d.asyncExec(new Runnable() { @Override public void run() { // Shell sh = new Shell(); BooleanMessageDialogWithToggle.openInformation(d.getActiveShell(), ((AttributeChangeNotification) notification).getAttributeName(), notification.getMessage(), "Notify me of server error messages in the future", true, AsteriskDiagramEditorPlugin.getInstance().getPreferenceStore(), PreferenceConstants.PREF_SERVER_INFO_NOTIFICATION); } }); } else if (SafiServerMonitor.LOG_EVENT_TYPE .equals(((AttributeChangeNotification) notification).getAttributeType())) { MessageConsole console = SafiServerPlugin.getDefault().getServerConsole(); if (console != null) { try { // LoggingEvent evt = (LoggingEvent) ((AttributeChangeNotification) // notification) // .getNewValue(); // console.newMessageStream().write(evt.getRenderedMessage() + "\n"); String msg = (String) ((AttributeChangeNotification) notification).getNewValue(); console.newMessageStream().write(msg + "\n"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } else if (SafiServerMonitor.SYSINFO_EVENT_TYPE .equalsIgnoreCase(((AttributeChangeNotification) notification).getAttributeType())) { SysInfo info = (SysInfo) ((AttributeChangeNotification) notification).getNewValue(); SafiServerPlugin.getDefault().serverInfoUpdated(info); } else if (SafiServerMonitor.DEBUG_EVENT_TYPE .equals(((AttributeChangeNotification) notification).getAttributeType())) { AttributeChangeNotification acn = (AttributeChangeNotification) notification; Object obj = acn.getNewValue(); if (obj instanceof ENotificationWrapper) { if (debugEventListeners != null) for (DebugEventListener l : debugEventListeners) { l.debugEvent((ENotificationWrapper) obj); } // ENotificationWrapper wrapper = (ENotificationWrapper)obj; // EObjectReference notObj = (EObjectReference)wrapper.getNotifiderID(); // String uid = notObj.getUID(); } } } else if (notification instanceof JMXConnectionNotification) { final JMXConnectionNotification n = (JMXConnectionNotification) notification; if (JMXConnectionNotification.OPENED.equals(n.getType())) { listenerRegistered = true; SafiServerPlugin.getDefault().serverConnected(n.getMessage()); } else if (JMXConnectionNotification.CLOSED.equals(n.getType()) || JMXConnectionNotification.FAILED.equals(n.getType()) && !isClosing) { reset(); SafiServerPlugin.getDefault().serverDisconnected(n.getMessage()); final Display d = PlatformUI.getWorkbench().getDisplay(); d.asyncExec(new Runnable() { @Override public void run() { // Shell sh = new Shell(); boolean b = MessageDialog.openQuestion(d.getActiveShell(), "Management Connection Lost", "Management connection to production SafiServer was lost: " + n.getMessage() + ". Would you like to try to reconnect?"); if (b) try { // connect(); // SafiServerPlugin.getDefault().updateTraceLogLevel(); new ReconnectDialog(d.getActiveShell()).open(); } catch (Exception e) { e.printStackTrace(); MessageDialog.openError(d.getActiveShell(), "Management Connection Error", "Couldn't connnect to production SafiServer management channel: " + e.getLocalizedMessage()); } } }); } } }
From source file:com.safi.workshop.audio.ImportAudioFileWizard.java
License:Open Source License
@Override public boolean performFinish() { // if (recordPromptPage != null) // recordPromptPage.dispose(); String pname = categoryPage.getProjectName(); SafletProject newProject = null;// www . j a va2s. c om if (pname != null) try { newProject = DBManager.getInstance().getProjectByName(pname); } catch (DBManagerException e) { e.printStackTrace(); Throwable th = e.getCause(); MessageDialog.openError(getShell(), "Retrieve Error", "Couldn't find project named " + pname + ": " + (th == null ? e : th).getLocalizedMessage()); } String cat = categoryPage.getCategory(); if (cat.startsWith("/")) cat = cat.substring(1); String promptName = filenamePage.getName(); int idx = promptName.lastIndexOf('.'); String exten = null; if (idx > 0) { String tmp = promptName.substring(0, idx); exten = promptName.substring(idx + 1, promptName.length()); promptName = tmp; } else exten = "gsm"; if (StringUtils.isNotBlank(cat)) { if (!cat.endsWith("/")) { cat += '/'; } promptName = cat + promptName; } String description = filenamePage.getDescription(); boolean isNew = false; String oldPromptName = null; String oldPromptExtension = null; if (prompt == null) { isNew = true; prompt = ConfigFactory.eINSTANCE.createPrompt(); prompt.setCreatedBy(SafiServerPlugin.getDefault().getCurrentUser()); } else { oldPromptName = prompt.getName(); oldPromptExtension = prompt.getExtension(); } prompt.setName(promptName); prompt.setExtension(exten); if (StringUtils.isNotBlank(description)) prompt.setDescription(description); prompt.setLastModified(new Date()); // prompt.getAsteriskServers().addAll(serverPage.getAsteriskServers()); try { SafletProject oldProject = isNew ? null : prompt.getProject(); boolean projectChanged = newProject != null && (isNew || prompt.getProject() == null || prompt.getProject().getId() != newProject.getId()); if (startPage.getImportMode() == ImportMode.KEEP_EXISTING) { if (!StringUtils.equals(oldPromptName, prompt.getName()) || !StringUtils.equals(oldPromptExtension, prompt.getExtension()) || projectChanged) try { SafiServerRemoteManager.getInstance().renamePromptFile(prompt.getId(), newProject == null ? null : newProject.getName(), prompt.getName(), prompt.getExtension()); } catch (Exception e) { e.printStackTrace(); Throwable th = e.getCause(); MessageDialog.openError(getShell(), "Rename Error", "Couldn't rename existing prompt: " + (th == null ? e : th).getLocalizedMessage()); return false; } } if (projectChanged) { DBManager.getInstance().getProjectPrompts(newProject).add(prompt); projectChanged = true; } DBManager.getInstance().saveOrUpdateServerResource(prompt); if (projectChanged) { DBManager.getInstance().saveOrUpdateServerResource(newProject); if (oldProject != null) DBManager.getInstance().saveOrUpdateServerResource(oldProject); } } catch (DBManagerException e) { e.printStackTrace(); Throwable th = e.getCause(); MessageDialog.openError(getShell(), "Save Error", "Couldn't save prompt: " + (th == null ? e : th).getLocalizedMessage()); return false; } File promptFile = null; switch (startPage.getImportMode()) { case IMPORT_EXISTING: promptFile = importPage.getAudioFile(); break; case KEEP_EXISTING: break; case RECORD_NEW: try { promptFile = recordPromptPage.getConvertedFile(); } catch (Exception e) { e.printStackTrace(); Throwable th = e.getCause(); MessageDialog.openError(getShell(), "Conversion Error", "Couldn't convert recorded prompt: " + (th == null ? e : th).getLocalizedMessage()); return false; } break; } if (promptFile != null) { try { SafiWorkshopEditorUtil.uploadPromptFile(prompt, promptFile); } catch (Exception e1) { e1.printStackTrace(); MessageDialog.openError(getShell(), "Save Error", "Couldn't upload file " + importPage.getFilename() + ": " + e1.getLocalizedMessage()); return false; } } if (promptForSynch && SafiServerPlugin.getDefault().hasTelephonyModules()) { shell = SafiWorkshopEditorUtil.getActiveShell(); boolean b = MessageDialog.openQuestion(shell, "Synchronize Now?", "One or more prompts were changed and may need to be synchronized " + "with the Telephony subsystems. Do you wish to synchronize audio prompts now?"); if (b) { AudioUtils.synchronizeTelephonySubsystemPrompts( SafiServerPlugin.getDefault().getTelephonySubsystems()); } } return true; }
From source file:com.safi.workshop.serverview.ServerViewPanel.java
protected void updateServer() { Object[] checked = updatesTableViewer.getCheckedElements(); if (checked == null || checked.length == 0) return;//from w w w . j ava 2s .co m boolean serverJarsTransported = false; int actionpaksTransported = 0; User user = SafiServerPlugin.getDefault().getCurrentUser(); if (!EntitlementUtils.isUserEntitled(user, EntitlementUtils.ENTIT_UPDATE_SERVER)) { MessageDialog.openError(SafiWorkshopEditorUtil.getActiveShell(), "Not Entitled", "You do not have sufficient privileges to carry out this operation."); return; } for (Object obj : checked) { if (obj instanceof SafiServerJar) { final SafiServerJar sj = (SafiServerJar) obj; try { SafletPersistenceManager.getInstance().transferServerJar(sj.bundleSymbolicName, sj.url); serverJarsTransported = true; } catch (Exception e) { e.printStackTrace(); AsteriskDiagramEditorPlugin.getInstance() .logError("Couldn't update SafiServer core file " + sj.url, e); MessageDialog.openError(getShell(), "SafiServer Core Update Failure", "Couldn't update SafiServer core file " + sj.url + ". " + e.getLocalizedMessage()); } } else if (obj instanceof ActionPak && ((ActionPak) obj).actionPakJars != null) { for (ActionPakJar jar : ((ActionPak) obj).actionPakJars) { try { SafletPersistenceManager.getInstance().transferActionPakJar(jar.bundleSymbolicName, jar.url); actionpaksTransported++; } catch (Exception e) { e.printStackTrace(); AsteriskDiagramEditorPlugin.getInstance() .logError("Couldn't update ActionPak file " + jar.url, e); MessageDialog.openError(getShell(), "SafiServer ActionPak Update Failure", "Couldn't update ActionPak file " + "Couldn't update ActionPak file " + jar.url + ". " + e.getLocalizedMessage()); } } } } if (serverJarsTransported) { if (MessageDialog.openQuestion(getShell(), "Restart SafiServer?", "The SafiServer must be restarted for some of the changes to take effect. Would you like to restart the server now?")) { try { SafiServerRemoteManager.getInstance().restartServerService(); } catch (SafiServerManagementException e) { AsteriskDiagramEditorPlugin.getInstance().logError("Couldn't restart SafiServer: ", e); MessageDialog.openError(getShell(), "Restart Server Error", "The remote SafiServer couldn't be restarted: " + e.getLocalizedMessage()); e.printStackTrace(); } } } else if (actionpaksTransported > 0) { MessageDialog.openInformation(getShell(), "ActionPak Update Successful", actionpaksTransported + (actionpaksTransported > 1 ? " ActionPaks were" : "ActionPak was") + " successfully uploaded to the SafiServer."); } reloadModel(); }
From source file:com.safi.workshop.util.SafletPersistenceManager.java
public void publishSaflet(IResource safletResource, Resource emfResource, com.safi.core.saflet.Saflet handler, boolean enabled, AsteriskDiagramEditor editor) throws PublishResourceException { // TODO Auto-generated method stub Session session = null;// ww w. j av a 2s . c o m try { session = DBManager.getInstance().createSession(); } catch (DBManagerException e1) { throw new PublishResourceException(e1); } // final Transaction transaction = session.getTransaction(); Transaction transaction = null; try { transaction = session.beginTransaction(); Date now = new Date(); IProject project = safletResource.getProject(); int pid = getResourceId(project); boolean isNewProject = false; SafletProject parentProject = null; if (pid != -1) { List results = session.createCriteria(SafletProject.class).add(Restrictions.eq("id", pid)).list(); if (!results.isEmpty()) { parentProject = (SafletProject) results.get(0); } } List results = session.createCriteria(SafletProject.class) .add(Restrictions.eq("name", project.getName())).list(); SafletProject sameNameProj = null; if (!results.isEmpty()) { sameNameProj = (SafletProject) results.get(0); } if (parentProject == null) { if (sameNameProj != null) { boolean ok = MessageDialog.openQuestion(SafiWorkshopEditorUtil.getActiveShell(), "Project Exists", "A SafiProject named " + project.getName() + " exists on the server. Press OK to merge this project into the one on the serveror " + "press Cancel to halt the publishing process."); if (!ok) return; parentProject = sameNameProj; } } else if (sameNameProj != null && sameNameProj != parentProject) { boolean ok = MessageDialog.openQuestion(SafiWorkshopEditorUtil.getActiveShell(), "Project Was Renamed", "The local project was renamed from " + parentProject.getName() + " to " + project.getName() + " but a project by that name exists on the server. Press OK to revert the local project name to " + parentProject.getName() + " or press Cancel to halt the publishing process."); if (!ok) { return; } IProjectDescription desc = project.getDescription(); desc.setName(parentProject.getName()); project.move(desc, true, null); } Saflet saflet = null; if (parentProject == null) { isNewProject = true; parentProject = ConfigFactory.eINSTANCE.createSafletProject(); // if (StringUtils.isNotBlank(pid)) { // try { // parentProject.setId(Integer.parseInt(pid)); // project.setPersistentProperty(new QualifiedName(AsteriskDiagramEditorPlugin.ID, // PersistenceProperties.PROJ_ID), String.valueOf(parentProject.getId())); // } catch (NumberFormatException e) { // } // } project.setPersistentProperty(MODIFIED_KEY, String.valueOf(now.getTime())); project.setPersistentProperty(UPDATED_KEY, String.valueOf(now.getTime())); parentProject.setName(project.getName()); session.save(parentProject); project.setPersistentProperty(RES_ID_KEY, String.valueOf(parentProject.getId())); } else { project.setPersistentProperty(RES_ID_KEY, String.valueOf(parentProject.getId())); project.setPersistentProperty(MODIFIED_KEY, String.valueOf(now.getTime())); project.setPersistentProperty(UPDATED_KEY, String.valueOf(now.getTime())); Saflet sameName = null; Saflet sameId = null; int safletId = getResourceId(safletResource); for (Saflet s : parentProject.getSaflets()) { if (safletId != -1) { if (s.getId() == safletId) { sameId = s; } if (StringUtils.equals(s.getName(), handler.getName())) { sameName = s; } } } // see if a saflet with the same name exists in a different project if (sameName == null) { results = session.createCriteria(Saflet.class).add(Restrictions.eq("name", handler.getName())) .list(); if (!results.isEmpty()) { Saflet s = (Saflet) results.get(0); boolean ok = MessageDialog.openQuestion(SafiWorkshopEditorUtil.getActiveShell(), "Saflet Exists", "A Saflet named " + handler.getName() + " exists on the server under project " + s.getProject().getName() + ". Do you want to overwrite?"); if (!ok) { transaction.rollback(); return; } EcoreUtil.remove(s); session.delete(s); } } if (sameId != null && sameId == sameName) { saflet = sameId; } else if (sameName != null) { boolean ok = MessageDialog.openQuestion(SafiWorkshopEditorUtil.getActiveShell(), "Saflet Exists", "A Saflet named " + handler.getName() + " exists on the server. Do you want to overwrite?"); if (!ok) { return; } // SafletProject p = sameName.getProject(); EcoreUtil.remove(sameName); // session.save(p); session.delete(sameName); if (sameId != null) saflet = sameId; } else if (sameId != null) { saflet = sameId; } } User user = SafiServerPlugin.getDefault().getCurrentUser(); if (saflet == null) { saflet = ConfigFactory.eINSTANCE.createSaflet(); saflet.setCreatedBy(user); parentProject.getSaflets().add(saflet); } saflet.setName(handler.getName()); saflet.setDescription(handler.getDescription()); saflet.setLastModified(now); saflet.setModifiedBy(user); saflet.setLastUpdated(now); ByteArrayOutputStream strema = new ByteArrayOutputStream(); emfResource.save(strema, null); printProject(saflet.getProject()); // saflet.setCode(new String(strema.toByteArray())); saflet.setCode(strema.toByteArray()); session.save(saflet); // if (isNewProject) // session.save(parentProject); // else // session.save(saflet); if (!StringUtils.equals(project.getName(), parentProject.getName())) { parentProject.setName(project.getName()); session.save(parentProject); } if (editor != null) { EAttribute nameAttr = SafletPackage.eINSTANCE.getSaflet_Id(); editor.getEditingDomain().getCommandStack() .execute(SetCommand.create(editor.getEditingDomain(), handler, nameAttr, saflet.getId())); editor.doSave(new NullProgressMonitor()); } else handler.setId(saflet.getId()); safletResource.setPersistentProperty(MODIFIED_KEY, String.valueOf(now.getTime())); safletResource.setPersistentProperty(UPDATED_KEY, String.valueOf(now.getTime())); safletResource.setPersistentProperty(RES_ID_KEY, String.valueOf(saflet.getId())); transaction.commit(); project.refreshLocal(IResource.DEPTH_INFINITE, null); // } } catch (Exception e) { e.printStackTrace(); if (transaction != null) transaction.rollback(); throw new PublishResourceException(e); } finally { session.close(); } }
From source file:com.safi.workshop.util.SafletPersistenceManager.java
public void prepareProjects(Shell shell, List<ServerResource> serverResourceList, Map<SafletProject, IProject> projectToResourceMap, List<IProject> existingProjects) { for (ServerResource sr : serverResourceList) { IProject sameId = null;/*from w w w . ja va2s. c o m*/ IProject sameName = null; if (sr instanceof SafletProject) { for (IProject p : existingProjects) { if (p.getName().equals(sr.getName())) sameName = p; int pid = SafletPersistenceManager.getInstance().getResourceId(p); if (sr.getId() == pid && pid != -1) sameId = p; } if (sameId != null && sameName != null && sameName != sameId) { MessageDialog.openWarning(shell, "Project Name Conflict", "A project with the name " + sameName.getName() + " already exists and has been persisted under a different name. Project " + sameName.getName() + " cannot be retrieved"); continue; } else if (sameId != null && sameName == null) { // its been renamed boolean ok = MessageDialog.openQuestion(shell, "Project Renamed", "The local project " + sameId.getName() + " has been renamed on the SafiServer. Press OK to rename the local project instance or press " + "'Cancel' to skip this project."); if (!ok) continue; try { IProjectDescription desc = sameId.getDescription(); desc.setName(sr.getName()); sameId.move(desc, true, null); projectToResourceMap.put((SafletProject) sr, sameId); } catch (CoreException e) { // TODO Auto-generated catch block e.printStackTrace(); MessageDialog.openError(shell, "Move Project Error", "Couldn't move project " + sameId.getName() + ": " + e.getLocalizedMessage()); AsteriskDiagramEditorPlugin.getInstance().logError("Move Project Error", e); continue; } } else if (sameId != null && sameId == sameName) { // name is unchanged projectToResourceMap.put((SafletProject) sr, sameId); } else if (sameName != null) { projectToResourceMap.put((SafletProject) sr, sameName); } else { try { IProject newProj = createNewProject((SafletProject) sr); projectToResourceMap.put((SafletProject) sr, newProj); } catch (CoreException e) { // TODO Auto-generated catch block e.printStackTrace(); MessageDialog.openError(shell, "Create Project Error", "Couldn't create project " + sr.getName() + ": " + e.getLocalizedMessage()); AsteriskDiagramEditorPlugin.getInstance().logError("Create Project Error", e); continue; } } } } }
From source file:com.salesforce.ide.core.internal.utils.Utils.java
License:Open Source License
public static boolean openQuestion(String pTitle, String pMessage) { return MessageDialog.openQuestion(getShell(), pTitle, pMessage); }
From source file:com.salesforce.ide.core.internal.utils.Utils.java
License:Open Source License
public static boolean openQuestion(Shell shell, String pTitle, String pMessage) { return MessageDialog.openQuestion(shell, pTitle, pMessage); }
From source file:com.salesforce.ide.ui.packagemanifest.PackageManifestChangeListener.java
License:Open Source License
public void resourceChanged(IResourceChangeEvent event) { //we are only interested in POST_CHANGE events if (event.getType() != IResourceChangeEvent.POST_CHANGE) return;// w w w. j a v a2 s . com IResourceDelta rootDelta = event.getDelta(); final Set<IResource> changed = new HashSet<IResource>(); IResourceDeltaVisitor visitor = new IResourceDeltaVisitor() { public boolean visit(IResourceDelta delta) { int kind = delta.getKind(); IResource resource = delta.getResource(); //only interested in package manifest files if (!(resource.getType() == IResource.FILE && Constants.PACKAGE_MANIFEST_FILE_NAME.equalsIgnoreCase(resource.getName()))) { return true; } if (kind == IResourceDelta.ADDED) { ForceStartup.getManifestCache().put(resource, getPackage(resource)); } else if (kind == IResourceDelta.REMOVED) { ForceStartup.getManifestCache().remove(resource); } if (kind != IResourceDelta.CHANGED) return true; //only interested in content changes if ((delta.getFlags() & IResourceDelta.CONTENT) == 0) return true; Package oldPackage = ForceStartup.getManifestCache().get(resource); Package newPackage = getPackage(resource); if (!isEqual(oldPackage, newPackage)) { changed.add(resource); } return true; } }; try { rootDelta.accept(visitor); if (!Utils.isEmpty(changed)) { for (final IResource resource : changed) { final IProject project = resource.getProject(); if (project.hasNature(DefaultNature.NATURE_ID)) { final Package newPackage = getPackage(resource); Display.getDefault().asyncExec(new Runnable() { public void run() { try { // remove ourself so that we don't receive new events while processing old ones // (RefreshResourceAction will touch package.xml causing an infinite dialog loop) // TODO investigate whether new events should be combined with old events ForceStartup.removePackageManifestChangeListener(); final Package oldPackage = ForceStartup.getManifestCache().get(resource); if (!isEqual(oldPackage, newPackage)) { ForceStartup.getManifestCache().put(resource, newPackage); if (logger.isDebugEnabled()) { logger.debug("Manifest resource '" + resource.getFullPath().toPortableString() + "' found to be refresh-able"); } if (MessageDialog.openQuestion(Display.getCurrent().getActiveShell(), Messages.PackageManifestChangeListener_dialog_title, NLS.bind(Messages.PackageManifestChangeListener_dialog_message, resource.getFullPath(), project.getName()))) { RefreshResourceAction action = new RefreshResourceAction(); action.selectionChanged(null, new StructuredSelection(project)); action.run(null); } } } catch (ForceProjectException e) { logger.warn("An error occured while refreshing " + project.getName() + ": " + ForceExceptionUtils.getRootCauseMessage(e)); } finally { // add ourself since we removed above ForceStartup.addPackageManifestChangeListener(); } } }); } } } } catch (CoreException e) { String logMessage = Utils.generateCoreExceptionLog(e); logger.warn("An error occured while trying to access files in ResourceDelta: " + logMessage); } }
From source file:com.salesforce.ide.ui.properties.ProjectContentPropertyPage.java
License:Open Source License
private void refreshMessageDialogCheck() { try {/*from w ww.ja v a2 s. com*/ // if packageManifest content summary diff than project current/orig one, then prompt refresh option dialog if (Utils.isNotEmpty(currentSavedSummary) && !currentSavedSummary.equals(originalSummary)) { if (MessageDialog.openQuestion(Display.getCurrent().getActiveShell(), com.salesforce.ide.ui.internal.Messages.PackageManifestChangeListener_dialog_title, NLS.bind( com.salesforce.ide.ui.internal.Messages.PackageManifestChangeListener_dialog_message, getProject().getName()))) { ForceStartup.removePackageManifestChangeListener(); RefreshResourceAction action = new RefreshResourceAction(); IFolder srcFolder = getProjectService().getSourceFolder(getProject()); if (srcFolder != null && srcFolder.exists()) { action.selectionChanged(null, new StructuredSelection(srcFolder)); refreshProject(action); // set original summary to current saved summary only successfully refresh project originalSummary = currentSavedSummary; } else { logger.warn("Unable to refresh package.xml changes - source folder does not exists"); } } } } catch (InterruptedException e) { logger.warn("Operation cancelled: " + e.getMessage()); } catch (Exception fpe) { logger.error( "Force project exception occurred when perform refresh as part of saving new project content property", fpe); } finally { ForceStartup.addPackageManifestChangeListener(); } }
From source file:com.salesforce.ide.ui.refactoring.ResourceDeleteParticipant.java
License:Open Source License
@Override public RefactoringStatus checkConditions(IProgressMonitor monitor, CheckConditionsContext context) throws OperationCanceledException { // REVIEWME: what to do w/ ResourceChangeChecker and/or ValidateEditChecker Display.getDefault().syncExec(new Runnable() { public void run() { Set<IResource> deletedResources = deleteChange.getRefactorController().getRefactorModel() .getChangeResources(); List<IResource> resources = new ArrayList<IResource>(); StringBuffer buffer = new StringBuffer(); try { Component workflow = deleteChange.getComponentFactory() .getComponentByComponentType(Constants.WORKFLOW); Component portal = deleteChange.getComponentFactory() .getComponentByComponentType(Constants.PORTAL); Component site = deleteChange.getComponentFactory() .getComponentByComponentType(Constants.CUSTOM_SITE); List<IResource> workflows = new ArrayList<IResource>(); List<IResource> sites = new ArrayList<IResource>(); List<IResource> portals = new ArrayList<IResource>(); for (Object o : deletedResources) { if (o instanceof IFile) { IFile file = (IFile) o; if (file.getFileExtension().equals(portal.getFileExtension())) { resources.add(file); portals.add(file); }/*from w w w .j a va2 s . c o m*/ else if (file.getFileExtension().equals(site.getFileExtension())) { resources.add(file); sites.add(file); } else if (file.getFileExtension().equals(workflow.getFileExtension())) { resources.add(file); workflows.add(file); } } } Collections.sort(portals, new Comparator<IResource>() { public int compare(IResource o1, IResource o2) { return o1.getName().compareToIgnoreCase(o2.getName()); } }); Collections.sort(sites, new Comparator<IResource>() { public int compare(IResource o1, IResource o2) { return o1.getName().compareToIgnoreCase(o2.getName()); } }); Collections.sort(workflows, new Comparator<IResource>() { public int compare(IResource o1, IResource o2) { return o1.getName().compareToIgnoreCase(o2.getName()); } }); for (IResource file : portals) { addBullet(buffer, NLS.bind(Messages.ResourceDeleteParticipant_fileLocallyDeleted_message, file.getName()), NLS.bind(Messages.ResourceDeleteParticipant_remotePortalConfirmation_message, resources.indexOf(file), file.getFullPath().removeFileExtension().lastSegment())); } for (IResource file : sites) { addBullet(buffer, NLS.bind(Messages.ResourceDeleteParticipant_fileLocallyDeleted_message, file.getName()), NLS.bind(Messages.ResourceDeleteParticipant_remoteSiteConfirmation_message, resources.indexOf(file), file.getFullPath().removeFileExtension().lastSegment())); } if (workflows.size() == 1) { IResource file = workflows.get(0); addBullet(buffer, NLS.bind(Messages.ResourceDeleteParticipant_fileLocallyDeleted_message, file.getName()), NLS.bind(Messages.ResourceDeleteParticipant_remoteWorkflowConfirmation_message, resources.indexOf(file))); } else if (workflows.size() > 0) { for (IResource file : workflows) { addBullet(buffer, NLS.bind( Messages.ResourceDeleteParticipant_fileLocallyDeleted_message, file.getName())); } addBullet(buffer, NLS.bind(Messages.ResourceDeleteParticipant_remoteWorkflowConfirmation_message, resources.indexOf(workflows.get(0)))); } } catch (FactoryException e) { logger.error("Could not get Workflow component", e); //$NON-NLS-1$ } boolean showWarning = true; if (resources.size() != deletedResources.size() && !MessageDialog.openQuestion(Display.getDefault().getActiveShell(), Messages.ResourceDeleteParticipant_remoteConfirmation_title, Messages.ResourceDeleteParticipant_remoteConfirmation_message)) { cancelFlag = true; showWarning = false; } if (resources.size() > 0 && showWarning) { WebOnlyDeleteMessageDialog.openWarning(Display.getDefault().getActiveShell(), Messages.WARNING, buffer.toString(), resources); if (resources.size() == deletedResources.size()) { cancelFlag = true; } } } }); if (cancelFlag) { deleteChange.setRemoteDeleteCanceled(true); return null; } if (deleteChange.getRefactorController().getRefactorModel().isChangeResourcesEmpty()) { logger.warn("Change elements for delete are null or empty"); return null; } RefactoringStatus refactoringStatus = null; try { refactoringStatus = deleteChange.getRefactorController().validateDelete(monitor); } catch (InterruptedException e) { logger.warn("Operation canceled by user"); throw new OperationCanceledException(e.getMessage()); } return refactoringStatus; }