This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

View | Details | Raw Unified | Return to bug 148805
Collapse All | Expand All

(-)a/vmd.midp/src/org/netbeans/modules/vmd/midp/components/displayables/ListCD.java (+16 lines)
Lines 67-76 Link Here
67
import org.netbeans.modules.vmd.midp.propertyeditors.PropertyEditorComboBox;
67
import org.netbeans.modules.vmd.midp.propertyeditors.PropertyEditorComboBox;
68
import org.netbeans.modules.vmd.midp.propertyeditors.PropertyEditorListSelectCommand;
68
import org.netbeans.modules.vmd.midp.propertyeditors.PropertyEditorListSelectCommand;
69
import java.util.Arrays;
69
import java.util.Arrays;
70
import java.util.Collection;
70
import java.util.Collections;
71
import java.util.Collections;
71
import java.util.List;
72
import java.util.List;
72
import org.netbeans.modules.vmd.api.model.common.DocumentSupport;
73
import org.netbeans.modules.vmd.api.model.common.DocumentSupport;
73
import org.netbeans.modules.vmd.api.screen.display.ScreenDisplayPresenter;
74
import org.netbeans.modules.vmd.api.screen.display.ScreenDisplayPresenter;
75
import org.netbeans.modules.vmd.midp.components.general.RootCode;
74
import org.netbeans.modules.vmd.midp.propertyeditors.PropertyEditorBooleanUC;
76
import org.netbeans.modules.vmd.midp.propertyeditors.PropertyEditorBooleanUC;
75
import org.netbeans.modules.vmd.midp.screen.display.ListDisplayPresenter;
77
import org.netbeans.modules.vmd.midp.screen.display.ListDisplayPresenter;
76
import org.openide.util.NbBundle;
78
import org.openide.util.NbBundle;
Lines 182-187 Link Here
182
                createSetterPresenter(),
184
                createSetterPresenter(),
183
                ListCode.createListActionCodeNamePresenter (),
185
                ListCode.createListActionCodeNamePresenter (),
184
                ListCode.createListActionCodeClassLevelPresenter (),
186
                ListCode.createListActionCodeClassLevelPresenter (),
187
                new RootCode.CodeComponentDependencyPresenter() {
188
                    protected void collectRequiredComponents(Collection<DesignComponent> requiredComponents) {
189
                        PropertyValue selectCommand = getComponent ().readProperty (PROP_SELECT_COMMAND);
190
                        if (selectCommand.getComponent() != null)
191
                            requiredComponents.add (selectCommand.getComponent ());
192
                        PropertyValue elements = getComponent().readProperty(PROP_ELEMENTS);
193
                        final List<PropertyValue> array = elements.getArray();
194
                        for (PropertyValue element : array) {
195
                            DesignComponent component = element.getComponent();
196
                            if (component != null)
197
                                requiredComponents.add(component);
198
                        }
199
                    }
200
                },
185
                // delete
201
                // delete
186
                DeleteDependencyPresenter.createNullableComponentReferencePresenter(PROP_SELECT_COMMAND),
202
                DeleteDependencyPresenter.createNullableComponentReferencePresenter(PROP_SELECT_COMMAND),
187
                // screen
203
                // screen
(-)a/vmd.midp/src/org/netbeans/modules/vmd/midp/components/general/RootCode.java (-6 / +7 lines)
Lines 86-92 Link Here
86
        protected void generateClassBodyCode (StyledDocument document) {
86
        protected void generateClassBodyCode (StyledDocument document) {
87
            MultiGuardedSection section = MultiGuardedSection.create (document, getComponent ().getComponentID () + "-initialize"); // NOI18N
87
            MultiGuardedSection section = MultiGuardedSection.create (document, getComponent ().getComponentID () + "-initialize"); // NOI18N
88
            section.getWriter ().write ("//<editor-fold defaultstate=\"collapsed\" desc=\" Generated Method: initialize \">\n"); // NOI18N
88
            section.getWriter ().write ("//<editor-fold defaultstate=\"collapsed\" desc=\" Generated Method: initialize \">\n"); // NOI18N
89
            section.getWriter ().write ("/**\n * Initilizes the application.\n * It is called only once when the MIDlet is started. The method is called before the <code>startMIDlet</code> method.\n */\n"); // NOI18N
89
            section.getWriter ().write ("/**\n * Initializes the application.\n * It is called only once when the MIDlet is started. The method is called before the <code>startMIDlet</code> method.\n */\n"); // NOI18N
90
            section.getWriter ().write ("private void initialize () {\n").commit (); // NOI18N
90
            section.getWriter ().write ("private void initialize () {\n").commit (); // NOI18N
91
            section.switchToEditable (getComponent ().getComponentID () + "-preInitialize"); // NOI18N
91
            section.switchToEditable (getComponent ().getComponentID () + "-preInitialize"); // NOI18N
92
            section.getWriter ().write (" // write pre-initialize user code here\n").commit (); // NOI18N
92
            section.getWriter ().write (" // write pre-initialize user code here\n").commit (); // NOI18N
Lines 112-122 Link Here
112
        ArrayList<DesignComponent> list = new ArrayList<DesignComponent> ();
112
        ArrayList<DesignComponent> list = new ArrayList<DesignComponent> ();
113
        HashMap<DesignComponent, HashSet<DesignComponent>> map = new HashMap<DesignComponent, HashSet<DesignComponent>> ();
113
        HashMap<DesignComponent, HashSet<DesignComponent>> map = new HashMap<DesignComponent, HashSet<DesignComponent>> ();
114
114
115
        for (DesignComponent component : DocumentSupport.gatherAllComponentsOfTypeID (document, ClassCD.TYPEID)) {
115
        for (DesignComponent component : DocumentSupport.gatherAllComponents (document)) {
116
            if (MidpTypes.getBoolean (component.readProperty (ClassCD.PROP_LAZY_INIT)))
116
            if (document.getDescriptorRegistry().isInHierarchy(ClassCD.TYPEID, component.getType())) {
117
                continue;
117
                if (! MidpTypes.getBoolean (component.readProperty (ClassCD.PROP_LAZY_INIT))) {
118
118
                    list.add (component);
119
            list.add (component);
119
                }
120
            }
120
121
121
            ArrayList<DesignComponent> requiredComponents = new ArrayList<DesignComponent> ();
122
            ArrayList<DesignComponent> requiredComponents = new ArrayList<DesignComponent> ();
122
            collectRequiredComponents (component, requiredComponents);
123
            collectRequiredComponents (component, requiredComponents);
(-)a/vmd.midp/src/org/netbeans/modules/vmd/midp/components/items/ChoiceGroupCD.java (+13 lines)
Lines 44-49 Link Here
44
44
45
package org.netbeans.modules.vmd.midp.components.items;
45
package org.netbeans.modules.vmd.midp.components.items;
46
46
47
import java.util.Collection;
47
import org.netbeans.modules.vmd.api.codegen.CodeSetterPresenter;
48
import org.netbeans.modules.vmd.api.codegen.CodeSetterPresenter;
48
import org.netbeans.modules.vmd.api.codegen.Parameter;
49
import org.netbeans.modules.vmd.api.codegen.Parameter;
49
import org.netbeans.modules.vmd.api.inspector.InspectorOrderingController;
50
import org.netbeans.modules.vmd.api.inspector.InspectorOrderingController;
Lines 70-75 Link Here
70
import java.util.Arrays;
71
import java.util.Arrays;
71
import java.util.Collections;
72
import java.util.Collections;
72
import java.util.List;
73
import java.util.List;
74
import org.netbeans.modules.vmd.midp.components.general.RootCode;
73
75
74
/**
76
/**
75
 *
77
 *
Lines 141-146 Link Here
141
                createPropertiesPresenter(),
143
                createPropertiesPresenter(),
142
                // code
144
                // code
143
                createSetterPresenter(),
145
                createSetterPresenter(),
146
                new RootCode.CodeComponentDependencyPresenter() {
147
                    protected void collectRequiredComponents(Collection<DesignComponent> requiredComponents) {
148
                        PropertyValue value = getComponent().readProperty(PROP_ELEMENTS);
149
                        final List<PropertyValue> array = value.getArray();
150
                        for (PropertyValue element : array) {
151
                            DesignComponent component = element.getComponent();
152
                            if (component != null)
153
                                requiredComponents.add(component);
154
                        }
155
                    }
156
                },
144
                MidpInspectorSupport.createComponentElementsCategory(NbBundle.getMessage (ChoiceGroupCD.class, "DISP_InspectorCategory_ChoiceElements"),getInspectorOrderingControllers(), ChoiceElementCD.TYPEID), //NOI18N
157
                MidpInspectorSupport.createComponentElementsCategory(NbBundle.getMessage (ChoiceGroupCD.class, "DISP_InspectorCategory_ChoiceElements"),getInspectorOrderingControllers(), ChoiceElementCD.TYPEID), //NOI18N
145
                //actions
158
                //actions
146
                AddActionPresenter.create(AddActionPresenter.ADD_ACTION, 10, ChoiceElementCD.TYPEID),
159
                AddActionPresenter.create(AddActionPresenter.ADD_ACTION, 10, ChoiceElementCD.TYPEID),
(-)a/vmd.midp/src/org/netbeans/modules/vmd/midp/components/sources/CommandEventSourceCD.java (+11 lines)
Lines 64-74 Link Here
64
64
65
import java.util.ArrayList;
65
import java.util.ArrayList;
66
import java.util.Arrays;
66
import java.util.Arrays;
67
import java.util.Collection;
67
import java.util.List;
68
import java.util.List;
68
import org.netbeans.modules.vmd.api.model.presenters.actions.ActionsPresenter;
69
import org.netbeans.modules.vmd.api.model.presenters.actions.ActionsPresenter;
69
import org.netbeans.modules.vmd.midp.codegen.ui.RenameCommandAction;
70
import org.netbeans.modules.vmd.midp.codegen.ui.RenameCommandAction;
70
import org.netbeans.modules.vmd.midp.components.general.ClassCD;
71
import org.netbeans.modules.vmd.midp.components.general.ClassCD;
71
import org.netbeans.modules.vmd.midp.components.general.ClassCode;
72
import org.netbeans.modules.vmd.midp.components.general.ClassCode;
73
import org.netbeans.modules.vmd.midp.components.general.RootCode;
72
import org.openide.util.actions.SystemAction;
74
import org.openide.util.actions.SystemAction;
73
75
74
76
Lines 115-120 Link Here
115
        return Arrays.asList (
117
        return Arrays.asList (
116
            // info
118
            // info
117
            InfoPresenter.create (EventSourceSupport.createCommandEventSourceInfoResolver ()),
119
            InfoPresenter.create (EventSourceSupport.createCommandEventSourceInfoResolver ()),
120
            // code
121
            new RootCode.CodeComponentDependencyPresenter () {
122
                protected void collectRequiredComponents (Collection<DesignComponent> requiredComponents) {
123
                    PropertyValue propertyValue = getComponent ().readProperty (PROP_COMMAND);
124
                    DesignComponent component = propertyValue.getComponent();
125
                    if (component != null)
126
                        requiredComponents.add(component);
127
                }
128
            },
118
            // general
129
            // general
119
            new GoToSourcePresenter() {
130
            new GoToSourcePresenter() {
120
                protected boolean matches (GuardedSection section) {
131
                protected boolean matches (GuardedSection section) {
(-)a/vmd.midp/src/org/netbeans/modules/vmd/midp/components/sources/ItemCommandEventSourceCD.java (-58 / +54 lines)
Lines 66-72 Link Here
66
66
67
import java.util.ArrayList;
67
import java.util.ArrayList;
68
import java.util.Arrays;
68
import java.util.Arrays;
69
import java.util.Collection;
69
import java.util.List;
70
import java.util.List;
71
import org.netbeans.modules.vmd.midp.components.general.RootCode;
70
72
71
/**
73
/**
72
 * @author David Kaspar
74
 * @author David Kaspar
Lines 118-123 Link Here
118
        return Arrays.asList(
120
        return Arrays.asList(
119
            // info
121
            // info
120
            InfoPresenter.create(EventSourceSupport.createItemCommandEventSourceInfoResolver()),
122
            InfoPresenter.create(EventSourceSupport.createItemCommandEventSourceInfoResolver()),
123
            // code
124
            new RootCode.CodeComponentDependencyPresenter () {
125
                protected void collectRequiredComponents (Collection<DesignComponent> requiredComponents) {
126
                    PropertyValue propertyValue = getComponent ().readProperty (PROP_COMMAND);
127
                    DesignComponent component = propertyValue.getComponent();
128
                    if (component != null)
129
                        requiredComponents.add(component);
130
                }
131
            },
121
            // general
132
            // general
122
            GoToSourcePresenter.createForwarder (PROP_COMMAND),
133
            GoToSourcePresenter.createForwarder (PROP_COMMAND),
123
            new SecondaryGoToSourcePresenter() {
134
            new SecondaryGoToSourcePresenter() {
Lines 132-199 Link Here
132
            new ItemCommandSRItemPresenter(),
143
            new ItemCommandSRItemPresenter(),
133
            // flow
144
            // flow
134
            new FlowEventSourcePinPresenter() {
145
            new FlowEventSourcePinPresenter() {
135
            protected DesignComponent getComponentForAttachingPin() {
146
                protected DesignComponent getComponentForAttachingPin() {
136
                return getFormComponent(getComponent());
147
                    return getFormComponent(getComponent());
137
            }
148
                }
138
            
149
139
            protected String getDisplayName() {
150
                protected String getDisplayName() {
140
                DesignComponent command = getCommandComponent(getComponent());
151
                    DesignComponent command = getCommandComponent(getComponent());
141
                InfoPresenter presenter = command.getPresenter(InfoPresenter.class);
152
                    InfoPresenter presenter = command.getPresenter(InfoPresenter.class);
142
                return presenter.getDisplayName(InfoPresenter.NameType.PRIMARY);
153
                    return presenter.getDisplayName(InfoPresenter.NameType.PRIMARY);
143
                
154
144
            }
155
                }
145
            
156
146
            protected String getOrder() {
157
                protected String getOrder() {
147
                return FlowItemCommandPinOrderPresenter.CATEGORY_ID;
158
                    return FlowItemCommandPinOrderPresenter.CATEGORY_ID;
148
            }
159
                }
149
            
160
150
            @Override
161
                @Override
151
            protected boolean canRename() {
162
                protected boolean canRename() {
152
                DesignComponent command = ItemCommandEventSourceCD.getCommandComponent(getComponent());
163
                    DesignComponent command = ItemCommandEventSourceCD.getCommandComponent(getComponent());
153
                return command != null;
164
                    return command != null;
154
            }
165
                }
155
            
166
156
            @Override
167
                @Override
157
            protected String getRenameName() {
168
                protected String getRenameName() {
158
                DesignComponent command = ItemCommandEventSourceCD.getCommandComponent(getComponent());
169
                    DesignComponent command = ItemCommandEventSourceCD.getCommandComponent(getComponent());
159
                return (String) command.readProperty(CommandCD.PROP_LABEL).getPrimitiveValue ();
170
                    return (String) command.readProperty(CommandCD.PROP_LABEL).getPrimitiveValue ();
160
            }
171
                }
161
            
172
162
            @Override
173
                @Override
163
            protected void setRenameName(String name) {
174
                protected void setRenameName(String name) {
164
                DesignComponent command = ItemCommandEventSourceCD.getCommandComponent(getComponent());
175
                    DesignComponent command = ItemCommandEventSourceCD.getCommandComponent(getComponent());
165
                command.writeProperty(CommandCD.PROP_LABEL, MidpTypes.createStringValue(name));
176
                    command.writeProperty(CommandCD.PROP_LABEL, MidpTypes.createStringValue(name));
166
            }
177
                }
167
            
178
168
            @Override
179
                @Override
169
            protected DesignEventFilter getEventFilter() {
180
                protected DesignEventFilter getEventFilter() {
170
                return super.getEventFilter().addDescentFilter(getComponent(), ItemCommandEventSourceCD.PROP_COMMAND);
181
                    return super.getEventFilter().addDescentFilter(getComponent(), ItemCommandEventSourceCD.PROP_COMMAND);
171
            }
182
                }
172
        },
183
            },
173
            DeleteDependencyPresenter.createDependentOnPropertyPresenter(PROP_ITEM),
184
            DeleteDependencyPresenter.createDependentOnPropertyPresenter(PROP_ITEM),
174
            DeleteDependencyPresenter.createDependentOnPropertyPresenter(PROP_COMMAND),
185
            DeleteDependencyPresenter.createDependentOnPropertyPresenter(PROP_COMMAND),
175
            new DeletePresenter() {
186
            new DeletePresenter() {
176
            protected void delete() {
187
                protected void delete() {
177
                DesignComponent component = getComponent();
188
                    DesignComponent component = getComponent();
178
                DesignComponent item = component.readProperty(PROP_ITEM).getComponent();
189
                    DesignComponent item = component.readProperty(PROP_ITEM).getComponent();
179
                ArraySupport.remove(item, ItemCD.PROP_COMMANDS, component);
190
                    ArraySupport.remove(item, ItemCD.PROP_COMMANDS, component);
191
                }
180
            }
192
            }
181
        }
182
        
183
        
184
        
185
        
186
        
187
        
188
        
189
        
190
        
191
        
192
        
193
        
194
        
195
        
196
        
197
        );
193
        );
198
    }
194
    }
199
    
195
    
(-)a/vmd.midp/src/org/netbeans/modules/vmd/midp/components/sources/ListElementEventSourceCD.java (+2 lines)
Lines 72-80 Link Here
72
72
73
import java.util.ArrayList;
73
import java.util.ArrayList;
74
import java.util.Arrays;
74
import java.util.Arrays;
75
import java.util.Collection;
75
import java.util.List;
76
import java.util.List;
76
import org.netbeans.modules.vmd.api.codegen.MultiGuardedSection;
77
import org.netbeans.modules.vmd.api.codegen.MultiGuardedSection;
77
import org.netbeans.modules.vmd.midp.actions.GoToSourcePresenter;
78
import org.netbeans.modules.vmd.midp.actions.GoToSourcePresenter;
79
import org.netbeans.modules.vmd.midp.components.general.RootCode;
78
import org.netbeans.modules.vmd.midp.propertyeditors.api.resource.PropertyEditorResourceLazyInit;
80
import org.netbeans.modules.vmd.midp.propertyeditors.api.resource.PropertyEditorResourceLazyInit;
79
81
80
/**
82
/**
(-)a/vmd.model/src/org/netbeans/modules/vmd/api/model/common/DocumentSupport.java (-1 / +19 lines)
Lines 53-59 Link Here
53
 * @author David Kaspar
53
 * @author David Kaspar
54
 */
54
 */
55
public class DocumentSupport {
55
public class DocumentSupport {
56
    
56
57
    /**
58
     * Gathers all components the main tree of components in a specific document.
59
     * @param document the document
60
     * @return the list of components
61
     */
62
    public static Iterable<DesignComponent> gatherAllComponents(DesignDocument document) {
63
        ArrayList<DesignComponent> list = new ArrayList<DesignComponent> ();
64
        gatherAllComponents(list, document.getRootComponent());
65
        return list;
66
    }
67
57
    /**
68
    /**
58
     * Gathers all components in main tree of components in a specific document.
69
     * Gathers all components in main tree of components in a specific document.
59
     * It returns a list of components that are or inherits a specific type-id using DescriptorRegistry.isInHierarchy method.
70
     * It returns a list of components that are or inherits a specific type-id using DescriptorRegistry.isInHierarchy method.
Lines 80-85 Link Here
80
            gatherAllComponentsContainingPresenterClass(list, rootComponent, presenterClass);
91
            gatherAllComponentsContainingPresenterClass(list, rootComponent, presenterClass);
81
        return list;
92
        return list;
82
    }
93
    }
94
95
    private static void gatherAllComponents(List<DesignComponent> list, DesignComponent component) {
96
        list.add (component);
97
        for (DesignComponent child : component.getComponents())
98
            gatherAllComponents(list, child);
99
    }
100
83
    
101
    
84
    private static <T extends Presenter> void gatherAllComponentsContainingPresenterClass(ArrayList<DesignComponent> list, DesignComponent component, Class<T> presenterClass) {
102
    private static <T extends Presenter> void gatherAllComponentsContainingPresenterClass(ArrayList<DesignComponent> list, DesignComponent component, Class<T> presenterClass) {
85
        if (component.getPresenter(presenterClass) != null)
103
        if (component.getPresenter(presenterClass) != null)

Return to bug 148805