001: /*
002: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
003: *
004: * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
005: *
006: * The contents of this file are subject to the terms of either the GNU
007: * General Public License Version 2 only ("GPL") or the Common
008: * Development and Distribution License("CDDL") (collectively, the
009: * "License"). You may not use this file except in compliance with the
010: * License. You can obtain a copy of the License at
011: * http://www.netbeans.org/cddl-gplv2.html
012: * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
013: * specific language governing permissions and limitations under the
014: * License. When distributing the software, include this License Header
015: * Notice in each file and include the License file at
016: * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
017: * particular file as subject to the "Classpath" exception as provided
018: * by Sun in the GPL Version 2 section of the License file that
019: * accompanied this code. If applicable, add the following below the
020: * License Header, with the fields enclosed by brackets [] replaced by
021: * your own identifying information:
022: * "Portions Copyrighted [year] [name of copyright owner]"
023: *
024: * Contributor(s):
025: *
026: * The Original Software is NetBeans. The Initial Developer of the Original
027: * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
028: * Microsystems, Inc. All Rights Reserved.
029: *
030: * If you wish your version of this file to be governed by only the CDDL
031: * or only the GPL Version 2, indicate your decision by adding
032: * "[Contributor] elects to include this software in this distribution
033: * under the [CDDL or GPL Version 2] license." If you do not indicate a
034: * single choice of license, a recipient has the option to distribute
035: * your version of this file under either the CDDL, the GPL Version 2 or
036: * to extend the choice of license to its licensees as provided above.
037: * However, if you add GPL Version 2 code and therefore, elected the GPL
038: * Version 2 license, then the option applies only if the new code is
039: * made subject to such option by the copyright holder.
040: */
041: package org.netbeans.modules.vmd.midpnb.producers;
042:
043: import org.netbeans.modules.vmd.api.model.*;
044: import org.netbeans.modules.vmd.midp.components.MidpDocumentSupport;
045: import org.netbeans.modules.vmd.midp.java.MidpJavaSupport;
046: import org.netbeans.modules.vmd.midp.components.categories.ResourcesCategoryCD;
047: import org.netbeans.modules.vmd.midp.components.displayables.DisplayableCD;
048: import org.netbeans.modules.vmd.midp.components.sources.CommandEventSourceCD;
049: import org.netbeans.modules.vmd.midp.palette.MidpPaletteProvider;
050: import org.netbeans.modules.vmd.midp.producers.MidpComponentProducer;
051: import org.netbeans.modules.vmd.midpnb.components.commands.WaitScreenFailureCommandCD;
052: import org.netbeans.modules.vmd.midpnb.components.commands.WaitScreenSuccessCommandCD;
053: import org.netbeans.modules.vmd.midpnb.components.displayables.WaitScreenCD;
054: import org.netbeans.modules.vmd.midpnb.components.sources.WaitScreenFailureCommandEventSourceCD;
055: import org.netbeans.modules.vmd.midpnb.components.sources.WaitScreenSuccessCommandEventSourceCD;
056: import org.netbeans.modules.vmd.midpnb.components.resources.SimpleCancellableTaskCD;
057: import org.openide.util.NbBundle;
058:
059: /**
060: *
061: * @author Karol Harezlak
062: */
063: public class WaitScreenProducer extends MidpComponentProducer {
064:
065: public WaitScreenProducer() {
066: super (WaitScreenCD.TYPEID, new PaletteDescriptor(
067: MidpPaletteProvider.CATEGORY_DISPLAYABLES, NbBundle
068: .getMessage(WaitScreenProducer.class,
069: "DISP_Wait_Screen"), NbBundle
070: .getMessage(WaitScreenProducer.class,
071: "TTIP_Wait_Screen"),
072: WaitScreenCD.ICON_PATH, WaitScreenCD.ICON_LARGE_PATH)); // NOI18N
073: }
074:
075: @Override
076: public Result postInitialize(DesignDocument document,
077: DesignComponent waitScreen) {
078: return produceWaitScreen(document, waitScreen, true);
079: }
080:
081: public static Result produceWaitScreen(DesignDocument document,
082: DesignComponent waitScreen, boolean createTask) {
083: DesignComponent successCommand = MidpDocumentSupport
084: .getSingletonCommand(document,
085: WaitScreenSuccessCommandCD.TYPEID);
086: DesignComponent failureCommand = MidpDocumentSupport
087: .getSingletonCommand(document,
088: WaitScreenFailureCommandCD.TYPEID);
089:
090: DesignComponent successEventSource = document
091: .createComponent(WaitScreenSuccessCommandEventSourceCD.TYPEID);
092: DesignComponent failureEventSource = document
093: .createComponent(WaitScreenFailureCommandEventSourceCD.TYPEID);
094:
095: successEventSource.writeProperty(
096: CommandEventSourceCD.PROP_DISPLAYABLE, PropertyValue
097: .createComponentReference(waitScreen));
098: successEventSource.writeProperty(
099: CommandEventSourceCD.PROP_COMMAND, PropertyValue
100: .createComponentReference(successCommand));
101:
102: failureEventSource.writeProperty(
103: CommandEventSourceCD.PROP_DISPLAYABLE, PropertyValue
104: .createComponentReference(waitScreen));
105: failureEventSource.writeProperty(
106: CommandEventSourceCD.PROP_COMMAND, PropertyValue
107: .createComponentReference(failureCommand));
108:
109: MidpDocumentSupport.addEventSource(waitScreen,
110: DisplayableCD.PROP_COMMANDS, successEventSource);
111: MidpDocumentSupport.addEventSource(waitScreen,
112: DisplayableCD.PROP_COMMANDS, failureEventSource);
113:
114: if (createTask) {
115: DesignComponent task = document
116: .createComponent(SimpleCancellableTaskCD.TYPEID);
117: MidpDocumentSupport.getCategoryComponent(document,
118: ResourcesCategoryCD.TYPEID).addComponent(task);
119: waitScreen.writeProperty(WaitScreenCD.PROP_TASK,
120: PropertyValue.createComponentReference(task));
121:
122: return new Result(waitScreen, successCommand,
123: failureCommand, successEventSource,
124: failureEventSource, task);
125: } else
126: return new Result(waitScreen, successCommand,
127: failureCommand, successEventSource,
128: failureEventSource);
129: }
130:
131: @Override
132: public Boolean checkValidity(DesignDocument document,
133: boolean useCachedValue) {
134: if (useCachedValue) {
135: return MidpJavaSupport.getCache(document)
136: .checkValidityCached(
137: "javax.microedition.lcdui.Canvas"); // NOI18N
138: }
139: return MidpJavaSupport.checkValidity(document,
140: "javax.microedition.lcdui.Canvas"); // NOI18N
141: }
142:
143: }
|