package org.enhydra.jawe.base.panel.panels; import java.awt.Color; import java.awt.Component; import java.awt.Dimension; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import javax.swing.Box; import javax.swing.JLabel; import javax.swing.JPasswordField; import javax.swing.JTextField; import javax.swing.SwingConstants; import org.enhydra.jawe.JaWE; import org.enhydra.jawe.ResourceManager; import org.enhydra.jawe.Settings; import org.enhydra.jawe.base.panel.PanelContainer; import org.enhydra.jawe.base.panel.PanelSettings; import org.enhydra.shark.xpdl.XMLElement; import org.joget.designer.Designer; public class XMLTextPanel extends XMLBasicPanel { protected JLabel jl; protected JTextField jtf; public XMLTextPanel( PanelContainer pc, XMLElement myOwnerL, boolean isVertical, boolean isPasswordField, boolean isEnabled) { this(pc, myOwnerL, null, isVertical, isPasswordField, isEnabled); } public XMLTextPanel( PanelContainer pc, XMLElement myOwnerL, String label, boolean isVertical, boolean isPasswordField, boolean isEnabled) { super(pc, myOwnerL, "", isVertical, false, true); boolean rightAllignment = false; Dimension textDim = new Dimension(250, 20); Color bkgCol = new Color(245, 245, 245); if (pc != null) { Settings settings = pc.getSettings(); rightAllignment = settings.getSettingBoolean("XMLBasicPanel.RightAllignment"); textDim = new Dimension( settings.getSettingInt("SimplePanelTextWidth"), settings.getSettingInt("SimplePanelTextHeight")); if (settings instanceof PanelSettings) { bkgCol = ((PanelSettings) settings).getBackgroundColor(); } } if (label == null) { if (pc != null) { label = pc.getLabelGenerator().getLabel(myOwner); } else { label = ResourceManager.getLanguageDependentString(myOwner.toName() + "Key"); } } jl = new JLabel(label + ": "); jl.setAlignmentX(Component.LEFT_ALIGNMENT); jl.setAlignmentY(Component.BOTTOM_ALIGNMENT); if (rightAllignment) { jl.setHorizontalAlignment(SwingConstants.RIGHT); } else { jl.setHorizontalAlignment(SwingConstants.LEFT); } if (!isPasswordField) { jtf = new JTextField(); } else { jtf = new JPasswordField(); } jtf.setText(myOwner.toValue()); jtf.setAlignmentX(Component.LEFT_ALIGNMENT); jtf.setAlignmentY(Component.BOTTOM_ALIGNMENT); jtf.setMinimumSize(new Dimension(textDim)); jtf.setMaximumSize(new Dimension(textDim)); jtf.setPreferredSize(new Dimension(textDim)); //CUSTOM if (JaWE.BASIC_MODE && myOwner.toName().equalsIgnoreCase("Type")) { jtf.setEnabled(false); }else if(JaWE.BASIC_MODE && myOwner.toName().equalsIgnoreCase("Id") && Designer.isPackageFixed() && myOwner.getParent() instanceof org.enhydra.shark.xpdl.elements.Package){ jtf.setEnabled(false); } else { jtf.setEnabled(isEnabled); } //END CUSTOM jtf.setBackground(bkgCol); if (rightAllignment && !isVertical) { add(Box.createHorizontalGlue()); } add(jl); if (!rightAllignment && !isVertical) { add(Box.createHorizontalGlue()); } add(jtf); final XMLPanel p = this; //add key listener jtf.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { if (getPanelContainer() == null) { return; } if (PanelUtilities.isModifyingEvent(e)) { getPanelContainer().panelChanged(p, e); } } }); } public boolean validateEntry() { if (isEmpty() && getOwner().isRequired() && !getOwner().isReadOnly()) { XMLBasicPanel.defaultErrorMessage(this.getWindow(), jl.getText()); jtf.requestFocus(); return false; } return true; } public boolean isEmpty() { return getText().trim().equals(""); } public void setElements() { if (!getOwner().isReadOnly()) { getOwner().setValue(getText().trim()); } } public String getText() { return jtf.getText(); } public Object getValue() { return getText(); } public void requestFocus() { jtf.requestFocus(); } }