/** * @see org.eclipse.ui.navigator.SaveablesProvider#getElements(org.eclipse.ui.Saveable) */ @Override public Object[] getElements(Saveable pSaveable) { if (pSaveable == null) { return new Object[] {}; } CommonViewer viewer = ProjectRegistry.ViewerRegistry.getViewer(); ITreeContentProvider contentProvider = (ITreeContentProvider) viewer.getContentProvider(); Object viewerInput = viewer.getInput(); if (contentProvider == null) { return null; } return contentProvider.getElements(viewerInput); }
/** * @see org.eclipse.ui.navigator.SaveablesProvider#getSaveables() */ @Override public Saveable[] getSaveables() { if (0 == saveablesMap.size()) { return new Saveable[] {}; } List<Saveable> list = new ArrayList<Saveable>(); for (Iterator<String> iterator = saveablesMap.keySet().iterator(); iterator.hasNext();) { String uriStr = (String) iterator.next(); ExplorerSaveable saveable = saveablesMap.get(uriStr); Resource resource = saveable.getResource(); if (resource == null) { iterator.remove(); continue; } if (DomainUtil.isUMXFile(resource)) { boolean active = ResourceManager.getInstance().isActive(resource.getURI()); if (!active) { iterator.remove(); continue; } } ResourceSetImpl resourceSet = (ResourceSetImpl) DomainRegistry.getUMLDomain().getResourceSet(); if (ProjectUtil.isModelFile(resource) && resourceSet.getURIResourceMap().containsKey(resource.getURI())) { list.add((Saveable) saveable); } } return list.isEmpty() ? new Saveable[0] : list.toArray(new Saveable[list.size()]); }
/** * @see org.eclipse.ui.forms.editor.SharedHeaderFormEditor#dispose() */ @Override public void dispose() { if (model != null && model.eResource() != null) { if (isDirty()) { ProjectUtil.rollbackWithSave(recorder, model); // TreeMap<String, Package> fragmentedPackageList = ProjectUtil.getFragmentedPackageList(model); // for (Iterator<Package> iterator = fragmentedPackageList.values().iterator(); iterator.hasNext();) { // Package pkg = (Package) iterator.next(); // // ProjectUtil.rollbackWithSave(recorder, pkg); // } } } try { SaveablesList modelManager = null; modelManager = (SaveablesList) getSite().getWorkbenchWindow().getService(ISaveablesLifecycleListener.class); Saveable[] openModels = modelManager.getOpenModels(); for (Saveable saveable : openModels) { if (saveable instanceof ExplorerSaveable) { ExplorerSaveable explorerSaveable = (ExplorerSaveable) saveable; explorerSaveable.dirtyStateChanged(); } } } catch (Exception e) { // ignore } unregisterResourceSetListener(); super.dispose(); }
@Override public boolean select(final Saveable saveable, final IWorkbenchPart[] containingParts) { return filter.select(containingParts); }
/** * ExplorerSaveablesProvider */ public ExplorerSaveablesProvider() { saveablesMap = new Hashtable<String, ExplorerSaveable>(); UMLLoginController.addLoginListener(new UMLNexcoreLoginListener() { @Override public void changed(UMLNexcoreLoginEvent event) { synchronized (this) { if (event.getType() == UMLNexcoreLoginEvent.LOG_IN) { // do nothing } else if (event.getType() == UMLNexcoreLoginEvent.LOG_OUT) { if (saveablesMap != null) { saveablesMap.clear(); } fireSaveablesClosed(getSaveables()); } } } }); EList<Adapter> cacheAdapters = DomainRegistry.getUMLDomain().getResourceSet().eAdapters(); cacheAdapters.add(new CacheAdapter(){ @Override public void notifyChanged(Notification msg) { super.notifyChanged(msg); final Object notifier = msg.getNotifier(); if (notifier instanceof Resource) { Resource r = (Resource) notifier; switch (msg.getFeatureID(Resource.class)) { // resourceset.getResources().remove(r) 될 때 실행됨. case Resource.RESOURCE__RESOURCE_SET: { if (saveablesMap != null) { if (saveablesMap.containsKey(r.getURI().toString())) { ExplorerSaveable saveable = saveablesMap.get(r.getURI().toString()); fireSaveablesClosed(new Saveable[] { saveable }); saveablesMap.remove(r.getURI().toString()); } } break; } } } } }); }
@Override public Saveable[] getSaveables() { return ProfileSaveablesProvider.getInstance().getSaveables(); }
@Override public Saveable[] getActiveSaveables() { // TODO agu fix this return ProfileSaveablesProvider.getInstance().getSaveables(); }