Search in sources :

Example 16 with Font

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

the class ResourceEditorView method removeFont.

private void removeFont(String f) {
    Object resourceValue = loadedResources.getFont(f);
    for (String themeName : loadedResources.getThemeResourceNames()) {
        Hashtable theme = loadedResources.getTheme(themeName);
        if (theme.values().contains(resourceValue)) {
            JOptionPane.showMessageDialog(mainPanel, "Font is in use by the theme: " + "\nYou must remove it from the theme first", "Font In Use", JOptionPane.ERROR_MESSAGE);
            return;
        }
    }
    removeSelection(f);
    fontList.refresh();
}
Also used : Hashtable(java.util.Hashtable) AnimationObject(com.codename1.ui.animations.AnimationObject)

Example 17 with Font

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

the class AddThemeEntry method updateThemeHashtable.

/**
 * Updates the theme hash with the values from this editor
 */
public void updateThemeHashtable(Hashtable themeRes) {
    if (disableRefresh) {
        return;
    }
    String uiid = prefix;
    String item = (String) componentName.getSelectedItem();
    if (item != null && item.length() > 0) {
        uiid = item + "." + prefix;
    }
    removeKeys(themeRes, uiid);
    if (!defineAttribute.isSelected()) {
        String val = (String) baseStyle.getSelectedItem();
        if (val != null && val.length() > 0) {
            switch(baseStyleType.getSelectedIndex()) {
                case 0:
                    themeRes.put(uiid + "derive", val);
                    break;
                case 1:
                    themeRes.put(uiid + "derive", val + ".sel");
                    break;
                case 2:
                    themeRes.put(uiid + "derive", val + ".press");
                    break;
                case 3:
                    themeRes.put(uiid + "derive", val + ".dis");
                    break;
            }
        }
    }
    if (!deriveAlignment.isSelected()) {
        switch(alignmentCombo.getSelectedIndex()) {
            case 0:
                themeRes.put(uiid + "align", new Integer(com.codename1.ui.Component.LEFT));
                break;
            case 1:
                themeRes.put(uiid + "align", new Integer(com.codename1.ui.Component.RIGHT));
                break;
            default:
                themeRes.put(uiid + "align", new Integer(com.codename1.ui.Component.CENTER));
                break;
        }
    }
    if (!deriveBackground.isSelected()) {
        int index = backgroundType.getSelectedIndex();
        themeRes.put(uiid + "bgType", new Byte(BACKGROUND_VALUES[index]));
        if (backgroundType.getSelectedIndex() >= BACKGROUND_VALUES_GRADIENT_ARRAY_OFFSET) {
            // this is a gradient related type
            themeRes.put(uiid + "bgGradient", new Object[] { Integer.valueOf(gradientStartColor.getText(), 16), Integer.valueOf(gradientEndColor.getText(), 16), new Float(((Number) gradientX.getValue()).floatValue()), new Float(((Number) gradientY.getValue()).floatValue()), new Float(((Number) gradientSize.getValue()).floatValue()) });
        } else {
            // this is an image related type
            if (imagesCombo.getSelectedItem() != null && imagesCombo.getSelectedItem().toString().length() > 0) {
                themeRes.put(uiid + "bgImage", resources.getImage((String) imagesCombo.getSelectedItem()));
            } else {
                brokenImage = true;
                themeRes.put(uiid + "bgImage", com.codename1.ui.Image.createImage(5, 5));
            }
        }
    }
    if (!deriveBackgroundColor.isSelected()) {
        themeRes.put(uiid + "bgColor", colorValueBG.getText());
    }
    if (!deriveBorder.isSelected()) {
        if (currentBorder == null) {
            themeRes.remove(uiid + "border");
        } else {
            themeRes.put(uiid + "border", currentBorder);
        }
    }
    if (!deriveFont.isSelected()) {
        Object v;
        if (bitmapFont.isSelected()) {
            String val = (String) bitmapFontValue.getSelectedItem();
            if (val != null) {
                v = resources.getFont(val);
            } else {
                v = Font.getDefaultFont();
            }
        } else {
            if (trueTypeFont.getSelectedIndex() > 0) {
                Font sys = Font.createSystemFont(FONT_FACE_VALUES[fontFace.getSelectedIndex()], FONT_STYLE_VALUES[fontStyle.getSelectedIndex()], FONT_SIZE_VALUES[fontSize.getSelectedIndex()]);
                String selectedItem = (String) trueTypeFont.getSelectedItem();
                if (selectedItem.startsWith("native:")) {
                    v = new EditorTTFFont(selectedItem, trueTypeFontSizeOption.getSelectedIndex(), ((Number) trueTypeFontSizeValue.getValue()).floatValue(), sys);
                } else {
                    v = new EditorTTFFont(new File(ResourceEditorView.getLoadedFile().getParentFile(), selectedItem), trueTypeFontSizeOption.getSelectedIndex(), ((Number) trueTypeFontSizeValue.getValue()).floatValue(), sys);
                }
            } else {
                v = Font.createSystemFont(FONT_FACE_VALUES[fontFace.getSelectedIndex()], FONT_STYLE_VALUES[fontStyle.getSelectedIndex()], FONT_SIZE_VALUES[fontSize.getSelectedIndex()]);
            }
        }
        themeRes.put(uiid + "font", v);
    }
    if (!deriveForegroundColor.isSelected()) {
        themeRes.put(uiid + "fgColor", colorValueFG.getText());
    }
    if (!deriveMargin.isSelected()) {
        themeRes.put(uiid + "margin", marginTop.getValue() + "," + marginBottom.getValue() + "," + marginLeft.getValue() + "," + marginRight.getValue());
        byte[] padUnit = new byte[4];
        padUnit[com.codename1.ui.Component.BOTTOM] = (byte) marginBottomUnit.getSelectedIndex();
        padUnit[com.codename1.ui.Component.TOP] = (byte) marginTopUnit.getSelectedIndex();
        padUnit[com.codename1.ui.Component.LEFT] = (byte) marginLeftUnit.getSelectedIndex();
        padUnit[com.codename1.ui.Component.RIGHT] = (byte) marginRightUnit.getSelectedIndex();
        updateThemeRes(padUnit, themeRes, uiid + "marUnit");
    }
    if (!derivePadding.isSelected()) {
        themeRes.put(uiid + "padding", paddingTop.getValue() + "," + paddingBottom.getValue() + "," + paddingLeft.getValue() + "," + paddingRight.getValue());
        byte[] padUnit = new byte[4];
        padUnit[com.codename1.ui.Component.BOTTOM] = (byte) paddingBottomUnit.getSelectedIndex();
        padUnit[com.codename1.ui.Component.TOP] = (byte) paddingTopUnit.getSelectedIndex();
        padUnit[com.codename1.ui.Component.LEFT] = (byte) paddingLeftUnit.getSelectedIndex();
        padUnit[com.codename1.ui.Component.RIGHT] = (byte) paddingRightUnit.getSelectedIndex();
        updateThemeRes(padUnit, themeRes, uiid + "padUnit");
    }
    if (!deriveTextDecoration.isSelected()) {
        Object v;
        switch(textDecorationCombo.getSelectedIndex()) {
            case 1:
                v = new Integer(com.codename1.ui.plaf.Style.TEXT_DECORATION_UNDERLINE);
                break;
            case 2:
                v = new Integer(com.codename1.ui.plaf.Style.TEXT_DECORATION_STRIKETHRU);
                break;
            case 3:
                v = new Integer(com.codename1.ui.plaf.Style.TEXT_DECORATION_3D);
                break;
            case 4:
                v = new Integer(com.codename1.ui.plaf.Style.TEXT_DECORATION_3D_LOWERED);
                break;
            case 5:
                v = new Integer(com.codename1.ui.plaf.Style.TEXT_DECORATION_3D_SHADOW_NORTH);
                break;
            default:
                v = new Integer(0);
                break;
        }
        themeRes.put(uiid + "textDecoration", v);
    }
    if (!deriveTransparency.isSelected()) {
        themeRes.put(uiid + "transparency", "" + transparencyValue.getValue());
    }
}
Also used : EditorTTFFont(com.codename1.ui.EditorTTFFont) File(java.io.File) EditorTTFFont(com.codename1.ui.EditorTTFFont) EditorFont(com.codename1.ui.EditorFont) Font(com.codename1.ui.Font)

Example 18 with Font

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

the class AddThemeEntry method setKeyValue.

private void setKeyValue(String key, Object value) {
    int pos = key.indexOf(".");
    String attr;
    if (pos > -1) {
        componentName.setSelectedItem(key.substring(0, pos));
        attr = key.substring(pos + 1, key.length());
    } else {
        componentName.setSelectedIndex(0);
        attr = key;
    }
    pos = attr.indexOf('#');
    if (pos > -1) {
        attr = attr.substring(pos + 1);
    }
    if (attr.indexOf("fgColor") > -1) {
        deriveForegroundColor.setSelected(false);
        highlightTab(1);
        changeColorButtonFG.setEnabled(true);
        colorValueFG.setEnabled(true);
        if (value instanceof String) {
            colorValueFG.setText((String) value);
        } else {
            colorValueFG.setText(Integer.toHexString(((Number) value).intValue()));
        }
        return;
    }
    if (attr.indexOf("bgColor") > -1) {
        deriveBackgroundColor.setSelected(false);
        highlightTab(1);
        changeColorButtonBG.setEnabled(true);
        colorValueBG.setEnabled(true);
        if (value instanceof String) {
            colorValueBG.setText((String) value);
        } else {
            colorValueBG.setText(Integer.toHexString(((Number) value).intValue()));
        }
        return;
    }
    if (attr.indexOf("derive") > -1) {
        highlightTab(6);
        baseStyle.setEnabled(true);
        baseStyleType.setEnabled(true);
        defineAttribute.setSelected(false);
        String baseItemValue = (String) value;
        int keyPos = baseItemValue.indexOf('.');
        if (keyPos < 0) {
            baseStyle.setSelectedItem(baseItemValue);
        } else {
            String b = baseItemValue.substring(0, keyPos);
            String k = baseItemValue.substring(keyPos + 1);
            baseStyle.setSelectedItem(b);
            if (k.equals("sel")) {
                baseStyleType.setSelectedIndex(1);
                return;
            }
            if (k.equals("press")) {
                baseStyleType.setSelectedIndex(2);
                return;
            }
            if (k.equals("dis")) {
                baseStyleType.setSelectedIndex(3);
                return;
            }
        }
        return;
    }
    if (attr.indexOf("align") > -1) {
        highlightTab(2);
        deriveAlignment.setSelected(false);
        alignmentCombo.setEnabled(true);
        switch(((Number) value).intValue()) {
            case com.codename1.ui.Component.LEFT:
                alignmentCombo.setSelectedIndex(0);
                break;
            case com.codename1.ui.Component.RIGHT:
                alignmentCombo.setSelectedIndex(1);
                break;
            case com.codename1.ui.Component.CENTER:
                alignmentCombo.setSelectedIndex(2);
                break;
        }
        return;
    }
    if (attr.indexOf("textDecoration") > -1) {
        highlightTab(7);
        deriveTextDecoration.setSelected(false);
        textDecorationCombo.setEnabled(true);
        switch(((Number) value).intValue()) {
            case com.codename1.ui.plaf.Style.TEXT_DECORATION_UNDERLINE:
                textDecorationCombo.setSelectedIndex(1);
                break;
            case com.codename1.ui.plaf.Style.TEXT_DECORATION_STRIKETHRU:
                textDecorationCombo.setSelectedIndex(2);
                break;
            case com.codename1.ui.plaf.Style.TEXT_DECORATION_3D:
                textDecorationCombo.setSelectedIndex(3);
                break;
            case com.codename1.ui.plaf.Style.TEXT_DECORATION_3D_LOWERED:
                textDecorationCombo.setSelectedIndex(4);
                break;
            default:
                textDecorationCombo.setSelectedIndex(0);
                break;
        }
        return;
    }
    if (attr.indexOf("border") > -1) {
        highlightTab(5);
        customizeBorder.setEnabled(true);
        deriveBorder.setSelected(false);
        borderLabel.setText(Accessor.toString((Border) value));
        ((CodenameOneComponentWrapper) borderLabel).getCodenameOneComponent().getStyle().setBorder((Border) value);
        borderLabel.repaint();
        if (value != null && value instanceof Border) {
            currentBorder = (Border) value;
        } else {
            currentBorder = Border.getDefaultBorder();
        }
        return;
    }
    if (attr.indexOf("font") > -1) {
        highlightTab(7);
        Font font = (Font) value;
        deriveFont.setSelected(false);
        systemFont.setEnabled(true);
        bitmapFont.setEnabled(true);
        if (resources.getFontResourceNames() != null) {
            for (String fontName : resources.getFontResourceNames()) {
                if (font == resources.getFont(fontName)) {
                    // this is a bitmap font
                    bitmapFont.setSelected(true);
                    bitmapFontValue.setEnabled(true);
                    addNewBitmapFont.setEnabled(true);
                    bitmapFontValue.setSelectedItem(fontName);
                    return;
                }
            }
        }
        // this is a system font
        systemFont.setSelected(true);
        fontFace.setEnabled(true);
        fontSize.setEnabled(true);
        fontStyle.setEnabled(true);
        trueTypeFont.setEnabled(trueTypeFont.getModel().getSize() > 0);
        trueTypeFontSizeOption.setEnabled(trueTypeFont.getModel().getSize() > 0);
        trueTypeFontSizeValue.setEnabled(trueTypeFont.getModel().getSize() > 0);
        fontFace.setSelectedIndex(getSystemFontOffset(font.getFace(), FONT_FACE_VALUES));
        fontSize.setSelectedIndex(getSystemFontOffset(font.getSize(), FONT_SIZE_VALUES));
        fontStyle.setSelectedIndex(getSystemFontOffset(font.getStyle(), FONT_STYLE_VALUES));
        if (font instanceof EditorTTFFont) {
            EditorTTFFont ed = (EditorTTFFont) font;
            if (ed.getFontFile() != null) {
                trueTypeFont.setSelectedItem(ed.getFontFile().getName());
                trueTypeFontSizeOption.setSelectedIndex(ed.getSizeSetting());
                trueTypeFontSizeValue.setValue(new Double(ed.getActualSize()));
            } else {
                if (ed.getNativeFontName() != null) {
                    trueTypeFont.setSelectedItem(ed.getNativeFontName());
                    trueTypeFontSizeOption.setSelectedIndex(ed.getSizeSetting());
                    trueTypeFontSizeValue.setValue(new Double(ed.getActualSize()));
                }
            }
        }
        return;
    }
    if (attr.indexOf("bgImage") > -1) {
        highlightTab(0);
        updateBackgroundAttribute();
        for (int iter = 0; iter < imagesCombo.getModel().getSize(); iter++) {
            String name = (String) imagesCombo.getModel().getElementAt(iter);
            if (value == resources.getImage(name)) {
                imagesCombo.setSelectedItem(name);
                return;
            }
        }
        return;
    }
    if (attr.indexOf("transparency") > -1) {
        highlightTab(1);
        deriveTransparency.setSelected(false);
        transparencyValue.setEnabled(true);
        transparencyValue.setValue(Integer.valueOf((String) value));
        return;
    }
    if (attr.indexOf("padding") > -1) {
        highlightTab(3);
        derivePadding.setSelected(false);
        paddingBottom.setEnabled(true);
        paddingTop.setEnabled(true);
        paddingLeft.setEnabled(true);
        paddingRight.setEnabled(true);
        paddingBottomUnit.setEnabled(true);
        paddingTopUnit.setEnabled(true);
        paddingLeftUnit.setEnabled(true);
        paddingRightUnit.setEnabled(true);
        StringTokenizer tokenizer = new StringTokenizer((String) value, ", ");
        paddingTop.setValue(Float.parseFloat(tokenizer.nextToken()));
        paddingBottom.setValue(Float.parseFloat(tokenizer.nextToken()));
        paddingLeft.setValue(Float.parseFloat(tokenizer.nextToken()));
        paddingRight.setValue(Float.parseFloat(tokenizer.nextToken()));
        return;
    }
    if (attr.indexOf("padUnit") > -1) {
        byte[] padUnit = (byte[]) value;
        paddingBottomUnit.setSelectedIndex(padUnit[com.codename1.ui.Component.BOTTOM]);
        paddingTopUnit.setSelectedIndex(padUnit[com.codename1.ui.Component.TOP]);
        paddingLeftUnit.setSelectedIndex(padUnit[com.codename1.ui.Component.LEFT]);
        paddingRightUnit.setSelectedIndex(padUnit[com.codename1.ui.Component.RIGHT]);
        return;
    }
    if (attr.indexOf("margin") > -1) {
        highlightTab(4);
        deriveMargin.setSelected(false);
        marginBottom.setEnabled(true);
        marginTop.setEnabled(true);
        marginLeft.setEnabled(true);
        marginRight.setEnabled(true);
        marginBottomUnit.setEnabled(true);
        marginTopUnit.setEnabled(true);
        marginLeftUnit.setEnabled(true);
        marginRightUnit.setEnabled(true);
        StringTokenizer tokenizer = new StringTokenizer((String) value, ", ");
        marginTop.setValue(Float.parseFloat(tokenizer.nextToken()));
        marginBottom.setValue(Float.parseFloat(tokenizer.nextToken()));
        marginLeft.setValue(Float.parseFloat(tokenizer.nextToken()));
        marginRight.setValue(Float.parseFloat(tokenizer.nextToken()));
        return;
    }
    if (attr.indexOf("marUnit") > -1) {
        byte[] padUnit = (byte[]) value;
        marginBottomUnit.setSelectedIndex(padUnit[com.codename1.ui.Component.BOTTOM]);
        marginTopUnit.setSelectedIndex(padUnit[com.codename1.ui.Component.TOP]);
        marginLeftUnit.setSelectedIndex(padUnit[com.codename1.ui.Component.LEFT]);
        marginRightUnit.setSelectedIndex(padUnit[com.codename1.ui.Component.RIGHT]);
        return;
    }
    if (attr.indexOf("bgType") > -1) {
        highlightTab(0);
        updateBackgroundAttribute();
        byte bgType = ((Byte) value).byteValue();
        for (int iter = 0; iter < BACKGROUND_VALUES.length; iter++) {
            if (bgType == BACKGROUND_VALUES[iter]) {
                backgroundType.setSelectedIndex(iter);
                break;
            }
        }
        return;
    }
    if (attr.indexOf("bgGradient") > -1) {
        highlightTab(0);
        updateBackgroundAttribute();
        Object[] gradient = (Object[]) value;
        gradientStartColor.setText(Integer.toHexString(((Number) gradient[0]).intValue()));
        gradientEndColor.setText(Integer.toHexString(((Number) gradient[1]).intValue()));
        if (gradient.length > 2) {
            gradientX.setValue(new Double(((Number) gradient[2]).doubleValue()));
            gradientY.setValue(new Double(((Number) gradient[3]).doubleValue()));
            if (gradient.length > 4) {
                gradientSize.setValue(new Double(((Number) gradient[4]).doubleValue()));
            }
        }
        return;
    }
}
Also used : CodenameOneComponentWrapper(com.codename1.ui.resource.util.CodenameOneComponentWrapper) EditorTTFFont(com.codename1.ui.EditorTTFFont) EditorFont(com.codename1.ui.EditorFont) Font(com.codename1.ui.Font) EditorTTFFont(com.codename1.ui.EditorTTFFont) StringTokenizer(java.util.StringTokenizer) Border(com.codename1.ui.plaf.Border)

Example 19 with Font

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

the class AddUIResource method addResource.

// GEN-LAST:event_templateActionPerformed
public String addResource(EditableResources res, ResourceEditorView view) {
    String newName = name.getText();
    for (String r : res.getResourceNames()) {
        if (r.equalsIgnoreCase(newName)) {
            JOptionPane.showMessageDialog(this, "A resource called: " + newName + " already exists\nYou must delete the resource first.", "Add Resource", JOptionPane.ERROR_MESSAGE);
            return null;
        }
    }
    Object ui = null;
    InputStream is = getClass().getResourceAsStream("/templates/" + template.getSelectedItem().toString() + ".res");
    if (is != null) {
        try {
            EditableResources r = new EditableResources();
            r.openFile(is);
            is.close();
            ui = r.getResourceObject("Main");
            r.remove("Main");
            view.checkDuplicateResourcesLoop(r, res.getImageResourceNames(), r.getImageResourceNames(), "Rename Image", "Image ", true);
            view.checkDuplicateResourcesLoop(r, res.getL10NResourceNames(), r.getL10NResourceNames(), "Rename Localization", "Localization ", true);
            view.checkDuplicateResourcesLoop(r, res.getDataResourceNames(), r.getDataResourceNames(), "Rename Data", "Data ", true);
            view.checkDuplicateResourcesLoop(r, res.getUIResourceNames(), r.getUIResourceNames(), "Rename GUI", "GUI ", true);
            view.checkDuplicateResourcesLoop(r, res.getFontResourceNames(), r.getFontResourceNames(), "Rename Font", "Font ", true);
            for (String s : r.getImageResourceNames()) {
                res.setImage(s, r.getImage(s));
            }
            for (String s : r.getL10NResourceNames()) {
                res.setL10N(s, (Hashtable) r.getResourceObject(s));
            }
            for (String s : r.getDataResourceNames()) {
                res.setData(s, (byte[]) r.getResourceObject(s));
            }
            for (String s : r.getUIResourceNames()) {
                res.setUi(s, (byte[]) r.getResourceObject(s));
            }
            for (String s : r.getFontResourceNames()) {
                res.setFont(s, r.getFont(s));
            }
        } catch (IOException err) {
            err.printStackTrace();
        }
    }
    res.setUi(name.getText(), (byte[]) ui);
    view.setSelectedResource(name.getText());
    return name.getText();
}
Also used : InputStream(java.io.InputStream) IOException(java.io.IOException) EditableResources(com.codename1.ui.util.EditableResources)

Example 20 with Font

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

the class ResetableTextWatcher method isScrollableParent.

private static boolean isScrollableParent(Component c) {
    Container p = c.getParent();
    Font f = c.getStyle().getFont();
    float pixelSize = f == null ? Display.getInstance().convertToPixels(4) : f.getPixelSize();
    while (p != null) {
        if (Accessor.scrollableYFlag(p) && p.getAbsoluteY() + p.getScrollY() < Display.getInstance().getDisplayHeight() / 2 - pixelSize * 2) {
            return true;
        }
        p = p.getParent();
    }
    return false;
}
Also used : Container(com.codename1.ui.Container) Font(com.codename1.ui.Font)

Aggregations

Font (com.codename1.ui.Font)30 Image (com.codename1.ui.Image)12 Hashtable (java.util.Hashtable)10 EditorFont (com.codename1.ui.EditorFont)8 Border (com.codename1.ui.plaf.Border)8 Component (com.codename1.ui.Component)7 Style (com.codename1.ui.plaf.Style)7 EncodedImage (com.codename1.ui.EncodedImage)6 TextArea (com.codename1.ui.TextArea)6 AnimationObject (com.codename1.ui.animations.AnimationObject)6 BufferedImage (java.awt.image.BufferedImage)6 IOException (java.io.IOException)6 java.awt (java.awt)5 Container (com.codename1.ui.Container)4 Dimension (com.codename1.ui.geom.Dimension)4 RoundBorder (com.codename1.ui.plaf.RoundBorder)4 RoundRectBorder (com.codename1.ui.plaf.RoundRectBorder)4 ParseException (java.text.ParseException)4 Paint (android.graphics.Paint)3 EditorTTFFont (com.codename1.ui.EditorTTFFont)3