01: /*
02: * Copyright 2006 Luca Garulli (luca.garulli@assetdata.it)
03: *
04: * Licensed under the Apache License, Version 2.0 (the "License");
05: * you may not use this file except in compliance with the License.
06: * You may obtain a copy of the License at
07: *
08: * http://www.apache.org/licenses/LICENSE-2.0
09: *
10: * Unless required by applicable law or agreed to in writing, software
11: * distributed under the License is distributed on an "AS IS" BASIS,
12: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13: * See the License for the specific language governing permissions and
14: * limitations under the License.
15: */
16:
17: package org.romaframework.aspect.view.echo2.rendering.impl;
18:
19: import nextapp.echo2.app.Component;
20: import nextapp.echo2.extras.app.menu.DefaultMenuModel;
21: import nextapp.echo2.extras.app.menu.ItemModel;
22:
23: import org.romaframework.aspect.view.ViewConstants;
24: import org.romaframework.aspect.view.echo2.form.EntityForm;
25: import org.romaframework.aspect.view.echo2.form.MenuForm;
26: import org.romaframework.aspect.view.echo2.rendering.AbstractRenderingMode;
27: import org.romaframework.aspect.view.form.ContentComponent;
28: import org.romaframework.aspect.view.rendering.InvalidRenderingMode;
29: import org.romaframework.core.schema.SchemaAction;
30: import org.romaframework.core.schema.SchemaField;
31: import org.romaframework.core.schema.SchemaObject;
32:
33: public class MenuRendering extends AbstractRenderingMode {
34: public Component renderClass(ContentComponent iForm,
35: ContentComponent iFormToRender) throws InvalidRenderingMode {
36: throw new InvalidRenderingMode(NAME);
37: }
38:
39: public Component renderField(ContentComponent iForm,
40: SchemaField iField, ContentComponent iFormToRender) {
41: ItemModel item = componentFactory.createMenuItemComponent(
42: (EntityForm) iForm, iField);
43:
44: MenuForm internalForm = new MenuForm(iForm,
45: (DefaultMenuModel) item);
46: internalForm.setMetaDataSchema(new SchemaObject(iField
47: .getComplexClass().getSchemaClass()));
48: internalForm.setMetaDataField(iField);
49:
50: return internalForm;
51: }
52:
53: public Component renderAction(ContentComponent iForm,
54: SchemaAction iAction) {
55: MenuForm form = (MenuForm) iForm;
56: ItemModel item = componentFactory.createMenuItemComponent(form,
57: iAction);
58:
59: form.getMenuNode().addItem(item);
60: return null;
61: }
62:
63: @Override
64: public String toString() {
65: return NAME;
66: }
67:
68: public static final String NAME = ViewConstants.RENDER_MENU;
69: }
|