All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.codename1.designer.AddImageResource Maven / Gradle / Ivy

/*
 * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.  Oracle designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Oracle in the LICENSE file that accompanied this code.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores
 * CA 94065 USA or visit www.oracle.com if you need additional information or
 * have any questions.
 */

package com.codename1.designer;

import com.codename1.ui.util.EditableResources;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;

/**
 * Adds a new image resource
 *
 * @author Shai Almog
 */
public class AddImageResource extends javax.swing.JDialog {
    private boolean okPressed;

    public AddImageResource(java.awt.Component c, EditableResources res) {
        this((java.awt.Frame)SwingUtilities.windowForComponent(c), true, res);
    }

    /** Creates new form AddImageResource */
    public AddImageResource(java.awt.Frame parent, boolean modal, EditableResources res) {
        super(parent, modal);
        initComponents();
        ModifiableJOptionPane.reverseOKCancel(ok, cancel);
        name.setText(AddResourceDialog.nextAvailableName(res, "Image"));
        pack();
        setLocationByPlatform(true);
        setVisible(true);
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // //GEN-BEGIN:initComponents
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        name = new javax.swing.JTextField();
        jLabel2 = new javax.swing.JLabel();
        type = new javax.swing.JComboBox();
        jScrollPane1 = new javax.swing.JScrollPane();
        help = new javax.swing.JTextPane();
        jLabel3 = new javax.swing.JLabel();
        jPanel1 = new javax.swing.JPanel();
        jPanel2 = new javax.swing.JPanel();
        ok = new javax.swing.JButton();
        cancel = new javax.swing.JButton();

        FormListener formListener = new FormListener();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("Add Image");

        jLabel1.setText("Name");
        jLabel1.setName("jLabel1"); // NOI18N

        name.setName("name"); // NOI18N

        jLabel2.setText("Type");
        jLabel2.setName("jLabel2"); // NOI18N

        type.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "RGB Image", "Multi-Image", "Timeline", "GIF Animation" }));
        type.setName("type"); // NOI18N
        type.addActionListener(formListener);

        jScrollPane1.setName("jScrollPane1"); // NOI18N

        help.setContentType("text/html"); // NOI18N
        help.setEditable(false);
        help.setText("\r\n  \r\n\r\n  \r\n  \r\n    

\r\n RGB Image is the default image used for the platform with the optimial number of colors on the given platform. When unsure this is probably what you are looking for.\r\n

\r\n \r\n\r\n"); // NOI18N help.setName("help"); // NOI18N jScrollPane1.setViewportView(help); jLabel3.setText("To \"batch add\" multiple images use the images menu above"); jLabel3.setName("jLabel3"); // NOI18N jPanel1.setName("jPanel1"); // NOI18N jPanel2.setName("jPanel2"); // NOI18N jPanel2.setLayout(new java.awt.GridLayout(1, 2)); ok.setText("OK"); ok.setName("ok"); // NOI18N ok.addActionListener(formListener); jPanel2.add(ok); cancel.setText("Cancel"); cancel.setName("cancel"); // NOI18N cancel.addActionListener(formListener); jPanel2.add(cancel); jPanel1.add(jPanel2); org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .addContainerGap() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE) .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(jLabel1) .add(jLabel2)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(name) .add(type, 0, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) .add(org.jdesktop.layout.GroupLayout.TRAILING, jLabel3)) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .addContainerGap() .add(jLabel3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabel1) .add(name, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(jLabel2) .add(type, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 143, Short.MAX_VALUE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(jPanel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addContainerGap()) ); pack(); } // Code for dispatching events from components to event handlers. private class FormListener implements java.awt.event.ActionListener { FormListener() {} public void actionPerformed(java.awt.event.ActionEvent evt) { if (evt.getSource() == type) { AddImageResource.this.typeActionPerformed(evt); } else if (evt.getSource() == ok) { AddImageResource.this.okActionPerformed(evt); } else if (evt.getSource() == cancel) { AddImageResource.this.cancelActionPerformed(evt); } } }//
//GEN-END:initComponents private void typeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_typeActionPerformed String helpText = "RGB Image is the default image used for the platform with the optimial number of colors on the given platform. When unsure this is probably what you are looking for."; switch(type.getSelectedIndex()) { // Multi-Image case 1: helpText = "Multi images have a separate image instance per resolution range/DPI, this is useful for icons or complex elements that are resolution specific. Its not a good idea to use it for elements such as backgrounds etc. since device rotation, VKB and resolution ranges will break such images."; break; // SVG Image /*case 2: helpText = "SVG (Scalable Vector Graphics) files can be used on supported platforms, a set of fallback images can be defined which are stored as PNG's for the platforms that don't support SVG files."; break;*/ // Timeline case 2: helpText = "Timeline allows defining simple animations mostly for splash screen/progress indication etc."; break; // GIF Animation case 3: helpText = "Animated GIF's can be imported and converted to a timeline, notice that multiple images will be created and this is a suboptimial way to create such effects."; break; } helpText = "

" + helpText + "

"; help.setText(helpText); }//GEN-LAST:event_typeActionPerformed private void okActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okActionPerformed okPressed = true; dispose(); }//GEN-LAST:event_okActionPerformed private void cancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelActionPerformed dispose(); }//GEN-LAST:event_cancelActionPerformed public boolean isOK() { return okPressed; } public String addResource(EditableResources res, ResourceEditorView view) { // "Image", "Animation", "Font", "Theme", "Data", "Localization (L10N)" 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; } } switch(type.getSelectedIndex()) { case 0: // RGB image ImageRGBEditor imageEditor = new ImageRGBEditor(res, name.getText(), view); imageEditor.selectFile(); view.setSelectedResource(name.getText()); break; case 1: // Multi image ImageMultiEditor multiImageEditor = new ImageMultiEditor(res, name.getText(), view); view.setSelectedResource(name.getText()); break; case 2: // SVG MultiImageSVGEditor svgEditor = new MultiImageSVGEditor(res, name.getText()); svgEditor.selectFile(); view.setSelectedResource(name.getText()); break; case 3: // timeline new TimelineEditor(res, name.getText(), view); view.setSelectedResource(name.getText()); break; case 4: // Animated GIF TimelineEditor.selectFile(view, res, name.getText()); break; } return name.getText(); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton cancel; private javax.swing.JTextPane help; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTextField name; private javax.swing.JButton ok; private javax.swing.JComboBox type; // End of variables declaration//GEN-END:variables }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy