Search in sources :

Example 36 with Theme

use of com.codename1.ui.util.xml.Theme in project CodenameOne by codenameone.

the class LiveDemo method start.

public void start() {
    Form previewForm = new Form("Preview Theme");
    Toolbar tb = new Toolbar();
    previewForm.setToolbar(tb);
    tb.setTitle("Preview Theme");
    tb.addMaterialCommandToSideMenu("Side Command", FontImage.MATERIAL_HELP, new ActionListener() {

        public void actionPerformed(ActionEvent evt) {
            ToastBar.showErrorMessage("Unmapped....");
        }
    });
    tb.addMaterialCommandToOverflowMenu("Overflow Command", FontImage.MATERIAL_HELP, new ActionListener() {

        public void actionPerformed(ActionEvent evt) {
            ToastBar.showErrorMessage("Unmapped....");
        }
    });
    tb.addMaterialCommandToRightBar("", FontImage.MATERIAL_HELP, new ActionListener() {

        public void actionPerformed(ActionEvent evt) {
            ToastBar.showErrorMessage("Unmapped....");
        }
    });
    previewForm.setLayout(new BorderLayout());
    Container first = new Container(new BoxLayout(BoxLayout.Y_AXIS));
    first.addComponent(new Label("This is a Label"));
    first.addComponent(new Button("This is a Button"));
    MultiButton mb = new MultiButton("This is a MultiButton");
    mb.setTextLine2("Second line of text");
    FontImage.setMaterialIcon(mb, FontImage.MATERIAL_HELP);
    first.addComponent(mb);
    TextField txt = new TextField();
    txt.setHint("This is a TextField");
    first.addComponent(txt);
    first.addComponent(new CheckBox("This is a CheckBox"));
    RadioButton rb1 = new RadioButton("This is a Radio Button 1");
    rb1.setGroup("group");
    first.addComponent(rb1);
    RadioButton rb2 = new RadioButton("This is a Radio Button 2");
    rb2.setGroup("group");
    first.addComponent(rb2);
    final Slider s = new Slider();
    s.setText("50%");
    s.setProgress(50);
    s.setEditable(true);
    s.setRenderPercentageOnTop(true);
    first.addComponent(s);
    Button b1 = new Button("Show a Dialog");
    b1.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent evt) {
            Dialog.show("Dialog Title", "Dialog Body", "Ok", "Cancel");
        }
    });
    first.addComponent(b1);
    previewForm.add(BorderLayout.CENTER, first);
    previewForm.show();
}
Also used : Slider(com.codename1.ui.Slider) Form(com.codename1.ui.Form) ActionEvent(com.codename1.ui.events.ActionEvent) BoxLayout(com.codename1.ui.layouts.BoxLayout) Label(com.codename1.ui.Label) RadioButton(com.codename1.ui.RadioButton) Container(com.codename1.ui.Container) ActionListener(com.codename1.ui.events.ActionListener) BorderLayout(com.codename1.ui.layouts.BorderLayout) RadioButton(com.codename1.ui.RadioButton) Button(com.codename1.ui.Button) MultiButton(com.codename1.components.MultiButton) CheckBox(com.codename1.ui.CheckBox) TextField(com.codename1.ui.TextField) MultiButton(com.codename1.components.MultiButton) Toolbar(com.codename1.ui.Toolbar)

Example 37 with Theme

use of com.codename1.ui.util.xml.Theme in project CodenameOne by codenameone.

the class ResourceEditorView method importResourceStream.

public void importResourceStream(InputStream is) throws IOException {
    EditableResources r = new EditableResources();
    r.openFile(is);
    checkDuplicateResourcesLoop(r, loadedResources.getThemeResourceNames(), r.getThemeResourceNames(), "Rename Theme", "Theme ");
    // load all the themes so rename will work properly on images and won't conflict
    for (String t : r.getThemeResourceNames()) {
        r.getTheme(t);
    }
    checkDuplicateResourcesLoop(r, loadedResources.getImageResourceNames(), r.getImageResourceNames(), "Rename Image", "Image ");
    checkDuplicateResourcesLoop(r, loadedResources.getL10NResourceNames(), r.getL10NResourceNames(), "Rename Localization", "Localization ");
    checkDuplicateResourcesLoop(r, loadedResources.getDataResourceNames(), r.getDataResourceNames(), "Rename Data", "Data ");
    checkDuplicateResourcesLoop(r, loadedResources.getUIResourceNames(), r.getUIResourceNames(), "Rename GUI", "GUI ");
    checkDuplicateResourcesLoop(r, loadedResources.getFontResourceNames(), r.getFontResourceNames(), "Rename Font", "Font ");
    for (String s : r.getImageResourceNames()) {
        if (r.isMultiImage(s)) {
            loadedResources.setMultiImage(s, (EditableResources.MultiImage) r.getResourceObject(s));
        } else {
            loadedResources.setImage(s, r.getImage(s));
        }
    }
    for (String s : r.getL10NResourceNames()) {
        loadedResources.setL10N(s, (Hashtable) r.getResourceObject(s));
    }
    for (String s : r.getDataResourceNames()) {
        loadedResources.setData(s, (byte[]) r.getResourceObject(s));
    }
    for (String s : r.getUIResourceNames()) {
        loadedResources.setUi(s, (byte[]) r.getResourceObject(s));
    }
    for (String s : r.getFontResourceNames()) {
        loadedResources.setFont(s, r.getFont(s));
    }
    for (String s : r.getThemeResourceNames()) {
        loadedResources.setTheme(s, r.getTheme(s));
    }
}
Also used : EditableResources(com.codename1.ui.util.EditableResources)

Example 38 with Theme

use of com.codename1.ui.util.xml.Theme in project CodenameOne by codenameone.

the class ResourceEditorView method addNewFontWizard.

/**
 * Invoked by the "..." button in the add theme entry dialog, allows us to add
 * a font on the fly while working on a theme
 */
public void addNewFontWizard() {
    AddResourceDialog addResource = new AddResourceDialog(loadedResources, AddResourceDialog.FONT);
    if (JOptionPane.OK_OPTION == JOptionPane.showConfirmDialog(mainPanel, addResource, "Add Font", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE)) {
        if (addResource.checkName(loadedResources)) {
            JOptionPane.showMessageDialog(mainPanel, "A resource with that name already exists", "Add Font", JOptionPane.ERROR_MESSAGE);
            addNewFontWizard();
            return;
        }
        // show the image editing dialog...
        FontEditor font = new FontEditor(loadedResources, new EditorFont(com.codename1.ui.Font.createSystemFont(com.codename1.ui.Font.FACE_SYSTEM, com.codename1.ui.Font.STYLE_PLAIN, com.codename1.ui.Font.SIZE_MEDIUM), null, "Arial-plain-12", true, RenderingHints.VALUE_TEXT_ANTIALIAS_ON, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.,;:!/\\*()[]{}|#$%^&<>?'\"+- "), addResource.getResourceName());
        font.setFactoryCreation(true);
        if (JOptionPane.OK_OPTION == JOptionPane.showConfirmDialog(mainPanel, font, "Add Font", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE)) {
            loadedResources.setFont(addResource.getResourceName(), font.createFont());
        }
    }
}
Also used : EditorFont(com.codename1.ui.EditorFont)

Example 39 with Theme

use of com.codename1.ui.util.xml.Theme in project CodenameOne by codenameone.

the class ResourceEditorView method removeImageOrAnimation.

private void removeImageOrAnimation(String resourceToRemove) {
    Object resourceValue = loadedResources.getImage(resourceToRemove);
    if (!loadedResources.isOverrideMode()) {
        for (String themeName : loadedResources.getThemeResourceNames()) {
            Hashtable theme = loadedResources.getTheme(themeName);
            if (theme.values().contains(resourceValue)) {
                JOptionPane.showMessageDialog(mainPanel, "Image is in use by the theme" + "\nYou must remove it from the theme first", "Image In Use", JOptionPane.ERROR_MESSAGE);
                return;
            }
            // we need to check the existance of image borders to replace images there...
            for (Object v : theme.values()) {
                if (v instanceof Border) {
                    Border b = (Border) v;
                    // BORDER_TYPE_IMAGE
                    if (Accessor.getType(b) == 8) {
                        com.codename1.ui.Image[] images = Accessor.getImages(b);
                        for (int i = 0; i < images.length; i++) {
                            if (images[i] == resourceValue) {
                                JOptionPane.showMessageDialog(mainPanel, "Image is in use by the theme in a border" + "\nYou must remove it from the theme first", "Image In Use", JOptionPane.ERROR_MESSAGE);
                                return;
                            }
                        }
                    }
                }
            }
        }
        // check if a timeline is making use of said image and replace it
        for (String image : loadedResources.getImageResourceNames()) {
            com.codename1.ui.Image current = loadedResources.getImage(image);
            if (current instanceof com.codename1.ui.animations.Timeline) {
                com.codename1.ui.animations.Timeline time = (com.codename1.ui.animations.Timeline) current;
                for (int iter = 0; iter < time.getAnimationCount(); iter++) {
                    com.codename1.ui.animations.AnimationObject o = time.getAnimation(iter);
                    if (AnimationAccessor.getImage(o) == resourceValue) {
                        JOptionPane.showMessageDialog(mainPanel, "Image is in use by a timeline: " + image, "Image In Use", JOptionPane.ERROR_MESSAGE);
                        return;
                    }
                }
            }
        }
        if (isInUse(loadedResources.getImage(resourceToRemove))) {
            JOptionPane.showMessageDialog(mainPanel, "Image is in use in the resource file", "Image In Use", JOptionPane.ERROR_MESSAGE);
            return;
        }
    }
    removeSelection(resourceToRemove);
    imageList.refresh();
    imageListMain.refresh();
    imageListSVG.refresh();
    imageListMulti.refresh();
    imageListTimeline.refresh();
}
Also used : Hashtable(java.util.Hashtable) EncodedImage(com.codename1.ui.EncodedImage) BufferedImage(java.awt.image.BufferedImage) Timeline(com.codename1.ui.animations.Timeline) Timeline(com.codename1.ui.animations.Timeline) AnimationObject(com.codename1.ui.animations.AnimationObject) AnimationObject(com.codename1.ui.animations.AnimationObject) RoundRectBorder(com.codename1.ui.plaf.RoundRectBorder) RoundBorder(com.codename1.ui.plaf.RoundBorder) Border(com.codename1.ui.plaf.Border)

Example 40 with Theme

use of com.codename1.ui.util.xml.Theme in project CodenameOne by codenameone.

the class ResourceEditorView method imageBorderWizardMenuItemActionPerformed.

// GEN-LAST:event_addImageTimelineActionPerformed
private void imageBorderWizardMenuItemActionPerformed(java.awt.event.ActionEvent evt) {
    // GEN-FIRST:event_imageBorderWizardMenuItemActionPerformed
    String themeName = null;
    if (selectedResource != null) {
        Object o = loadedResources.getResourceObject(selectedResource);
        if (!(o instanceof Hashtable)) {
            JOptionPane.showMessageDialog(mainPanel, "A theme must be selected to use this feature", "Image Border Wizard", JOptionPane.ERROR_MESSAGE);
            return;
        }
        themeName = selectedResource;
    }
    ImageBorderWizardTabbedPane iw = new ImageBorderWizardTabbedPane(loadedResources, themeName);
    JDialog dlg = new JDialog(SwingUtilities.windowForComponent(mainPanel), "Border Wizard");
    dlg.setLayout(new java.awt.BorderLayout());
    dlg.add(java.awt.BorderLayout.CENTER, iw);
    dlg.pack();
    dlg.setLocationRelativeTo(mainPanel);
    dlg.setModal(true);
    dlg.setVisible(true);
    setSelectedResource(selectedResource);
}
Also used : Hashtable(java.util.Hashtable) AnimationObject(com.codename1.ui.animations.AnimationObject) BorderLayout(java.awt.BorderLayout) JDialog(javax.swing.JDialog)

Aggregations

Hashtable (java.util.Hashtable)18 AnimationObject (com.codename1.ui.animations.AnimationObject)16 IOException (java.io.IOException)16 EncodedImage (com.codename1.ui.EncodedImage)12 Border (com.codename1.ui.plaf.Border)12 Image (com.codename1.ui.Image)10 RoundBorder (com.codename1.ui.plaf.RoundBorder)10 RoundRectBorder (com.codename1.ui.plaf.RoundRectBorder)10 BufferedImage (java.awt.image.BufferedImage)8 FileInputStream (java.io.FileInputStream)8 Resources (com.codename1.ui.util.Resources)7 File (java.io.File)7 EditorTTFFont (com.codename1.ui.EditorTTFFont)6 EditableResources (com.codename1.ui.util.EditableResources)6 InputStream (java.io.InputStream)6 EditorFont (com.codename1.ui.EditorFont)5 DataInputStream (java.io.DataInputStream)5 Container (com.codename1.ui.Container)4 Form (com.codename1.ui.Form)4 Label (com.codename1.ui.Label)4