Search in sources :

Example 6 with Container

use of com.codename1.ui.Container in project CodenameOne by codenameone.

the class LazyValueC method readCommand.

private void readCommand(DataInputStream in, Component c, Container parent, Resources res, boolean legacy) throws IOException {
    String commandName = in.readUTF();
    String commandImageName = in.readUTF();
    String rollover = null;
    String pressed = null;
    String disabled = null;
    if (!legacy) {
        rollover = in.readUTF();
        pressed = in.readUTF();
        disabled = in.readUTF();
    }
    int commandId = in.readInt();
    String commandAction = in.readUTF();
    String commandArgument = "";
    if (commandAction.equals("$Execute")) {
        commandArgument = in.readUTF();
    }
    boolean isBack = in.readBoolean();
    Command cmd = createCommandImpl(commandName, res.getImage(commandImageName), commandId, commandAction, isBack, commandArgument);
    if (rollover != null && rollover.length() > 0) {
        cmd.setRolloverIcon(res.getImage(rollover));
    }
    if (pressed != null && pressed.length() > 0) {
        cmd.setPressedIcon(res.getImage(pressed));
    }
    if (disabled != null && disabled.length() > 0) {
        cmd.setPressedIcon(res.getImage(pressed));
    }
    if (isBack) {
        Form f = c.getComponentForm();
        if (f != null) {
            setBackCommand(f, cmd);
        } else {
            if (backCommands == null) {
                backCommands = new Vector();
            }
            backCommands.addElement(cmd);
        }
    }
    Button btn;
    if (c instanceof Container) {
        btn = (Button) ((Container) c).getLeadComponent();
    } else {
        btn = ((Button) c);
    }
    boolean e = btn.isEnabled();
    btn.setCommand(cmd);
    // special case since setting the command implicitly gets the enabled state from the command
    if (!e) {
        btn.setEnabled(false);
    }
    // no menu
    if (c.getComponentForm() != null) {
        btn.removeActionListener(getFormListenerInstance(parent, null));
    }
    cmd.putClientProperty(COMMAND_ARGUMENTS, commandArgument);
    cmd.putClientProperty(COMMAND_ACTION, commandAction);
    if (commandAction.length() > 0 && resourceFilePath == null || isKeepResourcesInRam()) {
        resourceFile = res;
    }
}
Also used : Container(com.codename1.ui.Container) Command(com.codename1.ui.Command) Form(com.codename1.ui.Form) Button(com.codename1.ui.Button) RadioButton(com.codename1.ui.RadioButton) Vector(java.util.Vector)

Example 7 with Container

use of com.codename1.ui.Container in project CodenameOne by codenameone.

the class LazyValueC method postCreateComponents.

/**
 * Invoked after the components were created to allow properties that require the entire
 * tree to exist to update the component. This is useful for properties that point
 * at other components.
 */
private void postCreateComponents(DataInputStream in, Container parent, Resources res) throws Exception {
    // finds the component whose properties need to update
    String name = in.readUTF();
    Component lastComponent = null;
    while (name.length() > 0) {
        if (lastComponent == null || !lastComponent.getName().equals(name)) {
            lastComponent = findByName(name, parent);
        }
        Component c = lastComponent;
        int property = in.readInt();
        modifyingProperty(c, property);
        switch(property) {
            case PROPERTY_COMMAND_LEGACY:
                {
                    readCommand(in, c, parent, res, true);
                    break;
                }
            case PROPERTY_COMMAND:
                {
                    readCommand(in, c, parent, res, false);
                    break;
                }
            case PROPERTY_LABEL_FOR:
                c.setLabelForComponent((Label) findByName(in.readUTF(), parent));
                break;
            case PROPERTY_LEAD_COMPONENT:
                ((Container) c).setLeadComponent(findByName(in.readUTF(), parent));
                break;
            case PROPERTY_NEXT_FOCUS_UP:
                c.setNextFocusUp(findByName(in.readUTF(), parent));
                break;
            case PROPERTY_NEXT_FOCUS_DOWN:
                c.setNextFocusDown(findByName(in.readUTF(), parent));
                break;
            case PROPERTY_NEXT_FOCUS_LEFT:
                c.setNextFocusLeft(findByName(in.readUTF(), parent));
                break;
            case PROPERTY_NEXT_FOCUS_RIGHT:
                c.setNextFocusRight(findByName(in.readUTF(), parent));
                break;
        }
        name = in.readUTF();
    }
}
Also used : Container(com.codename1.ui.Container) Component(com.codename1.ui.Component)

Example 8 with Container

use of com.codename1.ui.Container in project CodenameOne by codenameone.

the class LazyValueC method createContainer.

Container createContainer(Resources res, String resourceName, EmbeddedContainer parentContainer) {
    onCreateRoot(resourceName);
    InputStream source = res.getUi(resourceName);
    if (source == null) {
        throw new RuntimeException("Resource doesn't exist within the current resource object: " + resourceName);
    }
    DataInputStream in = new DataInputStream(source);
    try {
        Hashtable h = null;
        if (localComponentListeners != null) {
            h = (Hashtable) localComponentListeners.get(resourceName);
        }
        Container c = (Container) createComponent(in, null, null, res, h, parentContainer);
        c.setName(resourceName);
        postCreateComponents(in, c, res);
        // try to be smart about initializing the home form
        if (homeForm == null) {
            if (c instanceof Form) {
                String nextForm = (String) c.getClientProperty("%next_form%");
                if (nextForm != null) {
                    homeForm = nextForm;
                } else {
                    homeForm = resourceName;
                }
            }
        }
        return c;
    } catch (Exception ex) {
        // If this happens its probably a serious bug
        ex.printStackTrace();
        return null;
    }
}
Also used : Container(com.codename1.ui.Container) Form(com.codename1.ui.Form) DataInputStream(java.io.DataInputStream) InputStream(java.io.InputStream) Hashtable(java.util.Hashtable) DataInputStream(java.io.DataInputStream) IOException(java.io.IOException)

Example 9 with Container

use of com.codename1.ui.Container in project CodenameOne by codenameone.

the class LazyValueC method setContainerStateImpl.

private void setContainerStateImpl(Container cnt, Hashtable state) {
    if (state != null) {
        restoreComponentState(cnt, state);
        String cmpName = (String) state.get(FORM_STATE_KEY_FOCUS);
        if (cmpName == null) {
            return;
        }
        Component c = findByName(cmpName, cnt);
        if (c != null) {
            c.requestFocus();
            if (c instanceof List) {
                Integer i = (Integer) state.get(FORM_STATE_KEY_SELECTION);
                if (i != null) {
                    ((List) c).setSelectedIndex(i.intValue());
                }
            }
        }
    }
}
Also used : List(com.codename1.ui.List) ContainerList(com.codename1.ui.list.ContainerList) Component(com.codename1.ui.Component)

Example 10 with Container

use of com.codename1.ui.Container in project CodenameOne by codenameone.

the class LazyValueC method formToContainer.

Container formToContainer(Form f) {
    Container cnt = new Container(f.getContentPane().getLayout());
    if (f.getContentPane().getLayout() instanceof BorderLayout || f.getContentPane().getLayout() instanceof TableLayout) {
        while (f.getContentPane().getComponentCount() > 0) {
            Component src = f.getContentPane().getComponentAt(0);
            Object o = f.getContentPane().getLayout().getComponentConstraint(src);
            f.getContentPane().removeComponent(src);
            cnt.addComponent(o, src);
        }
    } else {
        while (f.getContentPane().getComponentCount() > 0) {
            Component src = f.getContentPane().getComponentAt(0);
            f.getContentPane().removeComponent(src);
            cnt.addComponent(src);
        }
    }
    return cnt;
}
Also used : Container(com.codename1.ui.Container) BorderLayout(com.codename1.ui.layouts.BorderLayout) Component(com.codename1.ui.Component) TableLayout(com.codename1.ui.table.TableLayout)

Aggregations

Container (com.codename1.ui.Container)85 Component (com.codename1.ui.Component)65 BorderLayout (com.codename1.ui.layouts.BorderLayout)46 Style (com.codename1.ui.plaf.Style)38 ActionEvent (com.codename1.ui.events.ActionEvent)29 Form (com.codename1.ui.Form)26 Label (com.codename1.ui.Label)21 BoxLayout (com.codename1.ui.layouts.BoxLayout)21 Dimension (com.codename1.ui.geom.Dimension)20 ActionListener (com.codename1.ui.events.ActionListener)19 Button (com.codename1.ui.Button)15 FlowLayout (com.codename1.ui.layouts.FlowLayout)15 ArrayList (java.util.ArrayList)14 LayeredLayout (com.codename1.ui.layouts.LayeredLayout)12 TextArea (com.codename1.ui.TextArea)11 Point (com.codename1.ui.geom.Point)11 Rectangle (com.codename1.ui.geom.Rectangle)11 Dialog (com.codename1.ui.Dialog)10 RadioButton (com.codename1.ui.RadioButton)10 Vector (java.util.Vector)9