/** * Creates an instance of document. * @param documentInterface the documentInterface interface */ public DesignDocument (DocumentInterface documentInterface) { this.documentInterface = documentInterface; descriptorRegistry = DescriptorRegistry.getDescriptorRegistry (documentInterface.getProjectType (), documentInterface.getProjectID ()); listenerManager = new ListenerManager (this); transactionManager = new TransactionManager (this, descriptorRegistry, listenerManager); uid2components = new HashMap<Long, TimedWeakReference> (100); componentIDCounter = 0; selectedComponents = Collections.emptySet (); descriptorRegistry.addRegistryListener (new DescriptorRegistryListener() { public void descriptorRegistryUpdated () { updateDescriptorReferences (); } }); }
public void activeDocumentChanged(DesignDocument deactivatedDocument, DesignDocument activatedDocument) { if (activatedDocument == null) { return; } DescriptorRegistry currentRegistry = activatedDocument.getDescriptorRegistry(); if (registeredRegistry != currentRegistry) { if (registeredRegistry != null) { registeredRegistry.removeRegistryListener(this); } registeredRegistry = currentRegistry; if (registeredRegistry != null) { registeredRegistry.addRegistryListener(this); } } String oldProjectID; synchronized (this) { oldProjectID = activeProjectID; activeProjectID = activatedDocument.getDocumentInterface().getProjectID(); } boolean isProjectIDChanged = !activeProjectID.equals(oldProjectID); if (isProjectIDChanged) { registerClassPathListener(activatedDocument); } updatePalette(activatedDocument, isProjectIDChanged); }