private void createProjectFolder(final IProject project, final String name) { if ((name != null) && (name.length() != 0)) { IFolder folder = project.getFolder(new Path(name)); if (!folder.exists()) { try { folder.create(IResource.FORCE, true, null); } catch (CoreException cExc) { Activator.logException(cExc); } } } }
/* (non-Javadoc) * @see org.eclipse.jface.viewers.ITreeViewerListener#treeCollapsed(org.eclipse.jface.viewers.TreeExpansionEvent) */ public void treeCollapsed(final TreeExpansionEvent event) { Object element = event.getElement(); if ((element instanceof IGridContainer) && ((IGridContainer) element).isLazy()) { IGridContainer container = (IGridContainer) element; this.progressNodes.remove(container); container.setDirty(); try { container.deleteAll(); } catch (ProblemException pExc) { Activator.logException(pExc); } } }
/** * Get the children of the specified container. If the container is lazy and dirty the returned * array will contain only one element, i.e. a {@link ProgressRunner} that is used to monitor the * progress of the children fetching operation that will be started immediately by this method. * * @param container The container from which to fetch the children. * @return An array containing either the list of children or a {@link ProgressRunner} object. */ protected Object[] getChildren(final IGridContainer container) { Object[] children = null; if (container.isLazy() && container.isDirty()) { ProgressTreeNode monitor = this.progressNodes.get(container); if (monitor == null) { FetchChildrenJob fetcher = new FetchChildrenJob(container, this.treeViewer.getControl().getShell()); monitor = new ProgressTreeNode(this.treeViewer); this.progressNodes.put(container, monitor); fetcher.setExternalMonitor(monitor); fetcher.setSystem(true); fetcher.schedule(); } children = new Object[] {monitor}; } else { this.progressNodes.remove(container); try { IGridElement[] childElements = container.getChildren(null); List<IGridElement> visibleChildren = new ArrayList<IGridElement>(); for (IGridElement child : childElements) { if (!child.isHidden()) { visibleChildren.add(child); } } children = visibleChildren.toArray(new IGridElement[visibleChildren.size()]); } catch (ProblemException pExc) { if (this.treeViewer != null) { Shell shell = this.treeViewer.getControl().getShell(); ProblemDialog.openProblem( shell, Messages.getString("GridModelContentProvider.problem_title"), // $NON-NLS-1$ Messages.getString("GridModelContentProvider.problem_text") + container.getName(), // $NON-NLS-1$ pExc); } else { Activator.logException(pExc); } } } return children; }
public void run(final IProgressMonitor monitor) throws InvocationTargetException, InterruptedException { monitor.beginTask( Messages.getString("GridProjectCreationOperation.create_task"), 300); // $NON-NLS-1$ try { IProject proj = createProject(this.properties, monitor); addProjectNature(proj, monitor); this.gridProject = proj; } catch (CoreException cExc) { eu.geclipse.ui.internal.Activator.logException(cExc); } finally { monitor.done(); } }