private static Map<String,ComponentDescriptor> resolveRegistryMap (Project project) { final DescriptorRegistry registry = DescriptorRegistry.getDescriptorRegistry (MidpDocumentSupport.PROJECT_TYPE_MIDP, ProjectUtils.getProjectID (project)); final HashMap<String, ComponentDescriptor> registryMap = new HashMap<String, ComponentDescriptor> (); registry.readAccess (new Runnable() { public void run () { for (ComponentDescriptor descriptor : registry.getComponentDescriptors ()) { TypeID thisType = descriptor.getTypeDescriptor ().getThisType (); String string = thisType.getString (); if (! checkForJavaIdentifierCompliant (string)) continue; if (! registry.isInHierarchy (ClassCD.TYPEID, thisType) || ClassCD.TYPEID.equals (thisType)) continue; registryMap.put (string, descriptor); } } }); return registryMap; }
synchronized void clean() { if (activeDocument == null || activeDocument.get() == null) { return; } String projectID = activeDocument.get().getDocumentInterface().getProjectID(); String projectType = activeDocument.get().getDocumentInterface().getProjectType(); final DescriptorRegistry registry = DescriptorRegistry.getDescriptorRegistry(projectType, projectID); registry.readAccess(new Runnable() { public void run() { List<ComponentProducer> list = registry.getComponentProducers(); Map<String, ComponentProducer> producers = new HashMap<String, ComponentProducer>(list.size()); for (ComponentProducer producer : list) { producers.put(producer.getProducerID(), producer); } cleanCore(producers); } }); }
synchronized void init() { if (activeDocument == null || activeDocument.get() == null) { return; } if (requiresPaletteInit.getAndSet(true)) { return; } final String projectID = activeDocument.get().getDocumentInterface().getProjectID(); final String projectType = activeDocument.get().getDocumentInterface().getProjectType(); final DescriptorRegistry registry = DescriptorRegistry.getDescriptorRegistry(projectType, projectID); registry.readAccess(new Runnable() { public void run() { while (requiresPaletteInit.getAndSet(false)) { Collection<? extends PaletteProvider> providers = lookupResult.allInstances(); for (PaletteProvider provider : providers) { if (provider != null) { provider.initPaletteCategories(projectType); } } initCore(registry.getComponentProducers()); } } }); }
/** * 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 (); } }); }
String projectID = activeDocument.get().getDocumentInterface().getProjectID(); String projectType = activeDocument.get().getDocumentInterface().getProjectType(); final DescriptorRegistry registry = DescriptorRegistry.getDescriptorRegistry(projectType, projectID);
final DescriptorRegistry registry = DescriptorRegistry.getDescriptorRegistry(projectType, projectID); registry.readAccess(new Runnable() {
final List<ComponentProducer> producers = new ArrayList<ComponentProducer>(); final DescriptorRegistry registry = DescriptorRegistry.getDescriptorRegistry(projectType, projectID); registry.readAccess(new Runnable() {
@Override public boolean canDestroy() { boolean canDestroy = false; DesignDocument document = ActiveDocumentSupport.getDefault().getActiveDocument(); if (document != null) { DataObjectContext context = ProjectUtils.getDataObjectContextForDocument(document); if (context != null) { final ComponentProducer[] producer = new ComponentProducer[1]; final DescriptorRegistry registry = DescriptorRegistry.getDescriptorRegistry(context.getProjectType(), context.getProjectID()); registry.readAccess(new Runnable() { public void run() { List<ComponentProducer> producers = registry.getComponentProducers(); for (ComponentProducer p : producers) { if (p.getProducerID().equals(obj.getProducerID())) { producer[0] = p; break; } } } }); if (producer[0] != null) { canDestroy = PaletteKit.CUSTOM_CATEGORY_NAME.equals(producer[0].getPaletteDescriptor().getCategoryID()); } } } return canDestroy; }
@Override public void destroy() throws IOException { super.destroy(); DesignDocument document = ActiveDocumentSupport.getDefault().getActiveDocument(); if (document != null) { DataObjectContext context = ProjectUtils.getDataObjectContextForDocument(document); if (context != null) { final ComponentProducer[] producer = new ComponentProducer[1]; final DescriptorRegistry registry = DescriptorRegistry.getDescriptorRegistry(context.getProjectType(), context.getProjectID()); registry.readAccess(new Runnable() { public void run() { List<ComponentProducer> producers = registry.getComponentProducers(); for (ComponentProducer p : producers) { if (p.getProducerID().equals(obj.getProducerID())) { producer[0] = p; break; } } } }); if (producer[0] != null) { registry.removeComponentDescriptor(producer[0].getMainComponentTypeID()); } } } }