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: */
027: package org.netbeans.test.java.editor.jelly;
028:
029: import java.awt.event.KeyEvent;
030: import java.util.Arrays;
031: import java.util.Collections;
032: import java.util.HashSet;
033: import java.util.LinkedList;
034: import java.util.List;
035: import java.util.Set;
036: import javax.swing.ListModel;
037: import org.netbeans.jellytools.EditorOperator;
038: import org.netbeans.jemmy.operators.JDialogOperator;
039: import org.netbeans.jemmy.operators.JListOperator;
040: import org.netbeans.modules.java.editor.codegen.CodeGenerator;
041: import org.netbeans.modules.java.editor.codegen.ConstructorGenerator;
042: import org.netbeans.modules.java.editor.codegen.DelegateMethodGenerator;
043: import org.netbeans.modules.java.editor.codegen.EqualsHashCodeGenerator;
044: import org.netbeans.modules.java.editor.codegen.GetterSetterGenerator;
045: import org.netbeans.modules.java.editor.codegen.ImplementOverrideMethodGenerator;
046:
047: /**
048: *
049: * @author Jiri Prox Jiri.Prox@Sun.COM
050: */
051: public class GenerateCodeOperator {
052:
053: public static final String GENERATE_CONSTRUCTOR = org.openide.util.NbBundle
054: .getMessage(ConstructorGenerator.class, "LBL_constructor"); //NOI18N
055:
056: public static final String GENERATE_GETTER = org.openide.util.NbBundle
057: .getMessage(GetterSetterGenerator.class, "LBL_getter"); //NOI18N
058:
059: public static final String GENERATE_SETTER = org.openide.util.NbBundle
060: .getMessage(GetterSetterGenerator.class, "LBL_setter"); //NOI18N
061:
062: public static final String GENERATE_GETTER_SETTER = org.openide.util.NbBundle
063: .getMessage(GetterSetterGenerator.class,
064: "LBL_getter_and_setter"); //NOI18N
065:
066: public static final String GENERATE_EQUALS_HASHCODE = org.openide.util.NbBundle
067: .getMessage(EqualsHashCodeGenerator.class,
068: "LBL_equals_and_hashcode"); //NOI18N
069:
070: public static final String OVERRIDE_METHOD = org.openide.util.NbBundle
071: .getMessage(ImplementOverrideMethodGenerator.class,
072: "LBL_override_method"); //NOI18N
073:
074: public static final String IMPLEMENT_METHOD = org.openide.util.NbBundle
075: .getMessage(ImplementOverrideMethodGenerator.class,
076: "LBL_implement_method"); //NOI18N
077:
078: public static final String DELEGATE_METHOD = org.openide.util.NbBundle
079: .getMessage(DelegateMethodGenerator.class,
080: "LBL_delegate_method"); //NOI18N
081:
082: /**
083: * Opens requested code generation dialog
084: * @param type Displayname of menu item
085: * @return true is item is found, false elsewhere
086: */
087: public static boolean openDialog(String type, EditorOperator editor) {
088: editor.pushKey(KeyEvent.VK_INSERT, KeyEvent.ALT_DOWN_MASK);
089: JDialogOperator jdo = new JDialogOperator();
090: JListOperator list = new JListOperator(jdo);
091: ListModel lm = list.getModel();
092: for (int i = 0; i < lm.getSize(); i++) {
093: CodeGenerator cg = (CodeGenerator) lm.getElementAt(i);
094: if (cg.getDisplayName().equals(type)) {
095: list.setSelectedIndex(i);
096: jdo.pushKey(KeyEvent.VK_ENTER);
097: return true;
098: }
099: }
100: return false;
101: }
102:
103: public static boolean containsItems(EditorOperator editor,
104: String... items) {
105: Set<String> actItems = new HashSet<String>();
106: List<String> expItems = Arrays.asList(items);
107: editor.pushKey(KeyEvent.VK_INSERT, KeyEvent.ALT_DOWN_MASK);
108: JDialogOperator jdo = new JDialogOperator();
109: JListOperator list = new JListOperator(jdo);
110: ListModel lm = list.getModel();
111: for (int i = 0; i < lm.getSize(); i++) {
112: CodeGenerator cg = (CodeGenerator) lm.getElementAt(i);
113: actItems.add(cg.getDisplayName());
114: if (!expItems.contains(cg.getDisplayName()))
115: return false;
116: }
117: for (String string : expItems) {
118: if (!actItems.contains(string))
119: return false;
120: }
121: return true;
122:
123: }
124:
125: }
|