/**
* Copyright 2010 JBoss Inc
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.drools.guvnor;
/**
*
*/
public class RulesNewMenuGenerator extends Generator {
public RulesNewMenuGenerator() {
className = "RulesNewMenu";
outPath = "src/main/java/org/drools/guvnor/client/explorer";
configuration = "rules-new-menu.properties";
}
void processProperties(String key, String[] options) {
configs.add(new ItemConfiguration(key, options[0], options[1], options[2]));
}
String generateClassSource() {
StringBuffer sb = new StringBuffer("package org.drools.guvnor.client.explorer;\n\n");
addImports(sb);
sb.append("\npublic class " + className + " {\n\n");
sb.append(" public static Menu getMenu(final ExplorerLayoutManager manager) {\n");
sb.append(" Menu m = new Menu();\n\n");
for (Object o : configs) {
ItemConfiguration item = (ItemConfiguration) o;
sb.append(" m.addItem(new Item(\"" + item.title + "\", new BaseItemListenerAdapter() {\n");
sb.append(" public void onClick(BaseItem item, EventObject e) {\n");
sb.append(" manager.launchWizard(\"" + item.type + "\", \"" + item.title + "\", " + item.showCategories + ");\n");
sb.append(" }\n");
sb.append(" }, \"" + item.icon + "\"));\n\n");
}
sb.append(" return m;\n");
sb.append(" }\n");
sb.append("}");
return sb.toString();
}
void collectImports() {
imports.add("com.gwtext.client.widgets.menu.Menu");
imports.add("com.gwtext.client.widgets.menu.Item");
imports.add("com.gwtext.client.widgets.menu.BaseItem");
imports.add("com.gwtext.client.widgets.menu.event.BaseItemListenerAdapter");
imports.add("com.gwtext.client.core.EventObject");
imports.add("org.drools.guvnor.client.common.AssetFormats");
}
class ItemConfiguration {
String type;
String title;
String showCategories;
String icon;
ItemConfiguration(String type, String title, String showCategories, String icon) {
this.type = type;
this.title = title;
this.showCategories = showCategories;
this.icon = icon;
}
}
public static void main(String[] args) {
new RulesNewMenuGenerator().execute();
}
}