Package com.nexirius.framework.layout

Source Code of com.nexirius.framework.layout.StaticTextFieldLayoutItem$MyJTextField

//{HEADER
/**
* This class is part of jnex 'Nexirius Application Framework for Java'
* Copyright (C) Nexirius GmbH, CH-4450 Sissach, Switzerland (www.nexirius.ch)
*
* <p>This library is free software; you can redistribute it and/or<br>
* modify it under the terms of the GNU Lesser General Public<br>
* License as published by the Free Software Foundation; either<br>
* version 2.1 of the License, or (at your option) any later version.</p>
*
* <p>This library is distributed in the hope that it will be useful,<br>
* but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU<br>
* Lesser General Public License for more details.</p>
*
* <p>You should have received a copy of the GNU Lesser General Public<br>
* License along with this library; if not, write to the Free Software<br>
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA</p>
* </blockquote>
*
* <p>
* Nexirius GmbH, hereby disclaims all copyright interest in<br>
* the library jnex' 'Nexirius Application Framework for Java' written<br>
* by Marcel Baumann.</p>
*/
//}HEADER
package com.nexirius.framework.layout;

import com.nexirius.framework.dataviewer.DataViewer;
import com.nexirius.util.XString;
import com.nexirius.util.resource.ClientResource;

import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.awt.*;

public class StaticTextFieldLayoutItem extends DefaultLayoutItem {



    private static Insets defaultInsets = new Insets(3, 3, 3, 3);

    public StaticTextFieldLayoutItem() {
        super();
    }

    /**
     * @param field The associated structure field name (or any resource key string)
     * @param x     the x position of the component
     * @param y     the y position of the component
     * @param w     the width of the component (if twidth and theight are both 0 then they are ignored)
     * @param h     the height of the component (if twidth and theight are both 0 then they are ignored)
     */
    public StaticTextFieldLayoutItem(String field, int x, int y, int w, int h, PropertyEntry prop) {
        super(field, x, y, w, h, null, prop);
    }

    public void doLayout(DataViewer parent_viewer) {
        try {
            String resourceKey = getModelFieldName();
            ClientResource cr = parent_viewer.getFactory().getClientResource();

            String textString = cr.getLabel(resourceKey);

            XString text = new XString("<html>" + textString);

            text.replace("\\n", "<p>");

            // create the associated textField
            JLabel comp = new MyJTextField(text.toString());
            //JTextArea comp = new JTextArea(text.toString());

            //comp.setMargin(defaultInsets);

//      comp.setEditable(false);
            comp.setBorder(new EmptyBorder(defaultInsets));

            parent_viewer.add(comp);

            // move and resize the JComponent
            defaultLayout(comp, parent_viewer.getFactory());

//      setText(comp, text.toString());
        } catch (Exception ex) {
            ex.printStackTrace();
            // ignore
        }
    }

    public void setText(JLabel comp, String text) {
        SwingUtilities.invokeLater(new SetTextClass(comp, text));
    }

    class SetTextClass implements Runnable {
        JLabel comp;
        String text;

        SetTextClass(JLabel c, String t) {
            comp = c;
            text = t;
        }

        public void run() {
            comp.setText(text);
/*      comp.selectAll();
      comp.setSelectionStart(0);
      comp.setSelectionEnd(0);
      comp.setCaretPosition(0);
*/
            if (comp.hasFocus()) {
                comp.transferFocus();
            }
        }
    }

    class MyJTextField extends JLabel {
        public MyJTextField(String s) {
            super(s);
        }

        public boolean isFocusable() {
            return false;
        }
    }
}
TOP

Related Classes of com.nexirius.framework.layout.StaticTextFieldLayoutItem$MyJTextField

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.