Search in sources :

Example 1 with Node

use of com.codename1.rad.nodes.Node in project CodeRAD by shannah.

the class NodeUtilFunctions method buildActionsBar.

static void buildActionsBar(Node node, Container target, Entity entity, Actions right, Actions left, Actions overflow, Actions middle) {
    Container actionsBar = new Container(new BorderLayout());
    Container actionsBarRight = new Container(new BorderLayout());
    if (middle != null && middle.size() > 0) {
        GridLayout layout = new GridLayout(middle.size());
        Container cnt = new Container(layout);
        middle.addToContainer(cnt, entity);
        actionsBar.add(BorderLayout.CENTER, cnt);
    }
    if (left != null) {
        Container cnt = new Container(BoxLayout.x());
        for (ActionNode action : left) {
            cnt.add(action.getViewFactory().createActionView(entity, action));
        }
        if (actionsBar.getComponentCount() > 0) {
            actionsBar.add(BorderLayout.WEST, cnt);
        } else {
            actionsBar.add(BorderLayout.CENTER, cnt);
        }
    }
    if (right != null) {
        Container cnt = new Container(BoxLayout.x());
        $(cnt).setAlignment(RIGHT);
        for (ActionNode action : right) {
            // System.out.println("right node "+action);
            cnt.add(action.getViewFactory().createActionView(entity, action));
        }
        // System.out.println("Adding to right "+cnt);
        actionsBarRight.add(BorderLayout.CENTER, cnt);
    }
    if (overflow != null && !overflow.isEmpty()) {
        PopupMenu popup = new PopupMenu();
        for (ActionNode action : overflow) {
            Property.Label label = action.getLabel();
            String labelStr = label != null ? label.getValue() : "";
            Command cmd = new Command(labelStr) {

                @Override
                public void actionPerformed(ActionEvent evt) {
                    action.fireEvent(entity, target);
                }
            };
            if (action.getImageIcon() != null) {
                cmd.setIcon(action.getImageIcon().getValue());
            } else if (action.getMaterialIcon() != null) {
                cmd.setMaterialIcon(action.getMaterialIcon().getValue());
            }
            popup.addCommand(cmd);
        }
        actionsBarRight.add(BorderLayout.EAST, new Button(popup.getCommand()));
    }
    if (actionsBarRight.getComponentCount() > 0) {
        actionsBar.add(BorderLayout.EAST, actionsBarRight);
    }
    if (actionsBar.getComponentCount() > 0) {
        target.add(actionsBar);
    }
}
Also used : Container(com.codename1.ui.Container) GridLayout(com.codename1.ui.layouts.GridLayout) BorderLayout(com.codename1.ui.layouts.BorderLayout) Command(com.codename1.ui.Command) Button(com.codename1.ui.Button) ActionEvent(com.codename1.ui.events.ActionEvent) ActionNode(com.codename1.rad.nodes.ActionNode) Property(com.codename1.rad.models.Property) PopupMenu(ca.weblite.shared.components.PopupMenu)

Example 2 with Node

use of com.codename1.rad.nodes.Node in project CodeRAD by shannah.

the class ComponentDecorators method decorate.

public void decorate(Component cmp) {
    for (Node n : this) {
        if (!(n instanceof ComponentDecoratorNode)) {
            continue;
        }
        ComponentDecoratorNode cdn = (ComponentDecoratorNode) n;
        cdn.getValue().decorate(cmp);
    }
}
Also used : ComponentDecoratorNode(com.codename1.rad.nodes.ComponentDecoratorNode) Node(com.codename1.rad.nodes.Node) ComponentDecoratorNode(com.codename1.rad.nodes.ComponentDecoratorNode)

Example 3 with Node

use of com.codename1.rad.nodes.Node in project CodeRAD by shannah.

the class DefaultEntityListCellRenderer method getListCellRendererComponent.

@Override
public EntityView getListCellRendererComponent(EntityListView list, Entity value, int index, boolean isSelected, boolean isFocused) {
    ListNode listNode = (ListNode) list.getViewNode();
    MultiButtonEntityView out = new MultiButtonEntityView(value, listNode.getRowTemplate());
    ActionNode node = listNode.getAction(ActionCategories.LIST_SELECT_ACTION);
    if (node != null) {
        out.setAction(node);
    }
    return makeSwipeable(value, listNode.getRowTemplate(), out);
}
Also used : ActionNode(com.codename1.rad.nodes.ActionNode) MultiButtonEntityView(com.codename1.rad.ui.entityviews.MultiButtonEntityView) ListNode(com.codename1.rad.nodes.ListNode)

Example 4 with Node

use of com.codename1.rad.nodes.Node in project CodeRAD by shannah.

the class DefaultPropertyViewFactory method createPropertyView.

@Override
public PropertyView createPropertyView(Entity entity, FieldNode field) {
    PropertyViewFactory typeFactory = registry.get(field.getWidgetType(entity.getEntity().getEntityType()));
    if (typeFactory == null) {
        throw new IllegalArgumentException("Type " + field.getWidgetType() + " not supported");
    }
    PropertyView out = typeFactory.createPropertyView(entity, field);
    PropertyViewDecoratorAttribute decoratorAtt = (PropertyViewDecoratorAttribute) field.findAttribute(PropertyViewDecoratorAttribute.class);
    if (decoratorAtt != null) {
        out = decoratorAtt.getValue().decorate(out);
    }
    NodeList decorators = field.getChildNodes(PropertyViewDecoratorNode.class);
    if (decorators != null) {
        for (Node n : decorators) {
            out = ((PropertyViewDecoratorNode) n).getValue().decorate(out);
        }
    }
    return out;
}
Also used : PropertyViewDecoratorAttribute(com.codename1.rad.attributes.PropertyViewDecoratorAttribute) PropertyViewFactoryNode(com.codename1.rad.nodes.PropertyViewFactoryNode) Node(com.codename1.rad.nodes.Node) PropertyViewDecoratorNode(com.codename1.rad.nodes.PropertyViewDecoratorNode) FieldNode(com.codename1.rad.nodes.FieldNode) OptionsNode(com.codename1.rad.nodes.OptionsNode) PropertyViewDecoratorNode(com.codename1.rad.nodes.PropertyViewDecoratorNode) LabelPropertyView(com.codename1.rad.propertyviews.LabelPropertyView) TextFieldPropertyView(com.codename1.rad.propertyviews.TextFieldPropertyView) TablePropertyView(com.codename1.rad.propertyviews.TablePropertyView) ButtonListPropertyView(com.codename1.rad.propertyviews.ButtonListPropertyView) CheckBoxPropertyView(com.codename1.rad.propertyviews.CheckBoxPropertyView) ComboBoxPropertyView(com.codename1.rad.propertyviews.ComboBoxPropertyView) SwitchPropertyView(com.codename1.rad.propertyviews.SwitchPropertyView) TextAreaPropertyView(com.codename1.rad.propertyviews.TextAreaPropertyView)

Example 5 with Node

use of com.codename1.rad.nodes.Node in project CodeRAD by shannah.

the class ProfileAvatarsTitleComponentBuilder method build.

@Override
public ProfileAvatarsTitleComponent build() {
    ViewNode node = new ViewNode();
    node.setParent(getContext().getNode());
    EntityList l = (entity instanceof EntityList) ? (EntityList) entity : new EntityList();
    if (entity != l) {
        l.add(entity);
    }
    if (avatarSize <= 0) {
        avatarSize = CN.convertToPixels(1f, Style.UNIT_TYPE_REM);
    }
    return new ProfileAvatarsTitleComponent(l, node, avatarSize / (float) CN.convertToPixels(1f));
}
Also used : EntityList(com.codename1.rad.models.EntityList) ViewNode(com.codename1.rad.nodes.ViewNode) ProfileAvatarsTitleComponent(com.codename1.rad.ui.entityviews.ProfileAvatarsTitleComponent)

Aggregations

BorderLayout (com.codename1.ui.layouts.BorderLayout)11 ViewNode (com.codename1.rad.nodes.ViewNode)10 ActionNode (com.codename1.rad.nodes.ActionNode)8 Container (com.codename1.ui.Container)7 ListNode (com.codename1.rad.nodes.ListNode)6 PropertySelectorAttribute (com.codename1.rad.attributes.PropertySelectorAttribute)5 Node (com.codename1.rad.nodes.Node)5 BoxLayout (com.codename1.ui.layouts.BoxLayout)5 MultiButtonEntityView (com.codename1.rad.ui.entityviews.MultiButtonEntityView)4 Label (com.codename1.ui.Label)4 GridLayout (com.codename1.ui.layouts.GridLayout)4 Log (com.codename1.io.Log)3 NodeDecoratorAttribute (com.codename1.rad.attributes.NodeDecoratorAttribute)3 ViewPropertyParameterAttribute (com.codename1.rad.attributes.ViewPropertyParameterAttribute)3 Entity (com.codename1.rad.models.Entity)3 EntityList (com.codename1.rad.models.EntityList)3 EntityTypeBuilder.entityTypeBuilder (com.codename1.rad.models.EntityTypeBuilder.entityTypeBuilder)3 Thing (com.codename1.rad.schemas.Thing)3 WrapperEntityView (com.codename1.rad.ui.entityviews.WrapperEntityView)3 Button (com.codename1.ui.Button)3