/** * Copyright (c) 2009 Juwi MacMillan Group GmbH * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package de.juwimm.cms.content.modules; import java.awt.BorderLayout; import java.util.Iterator; import java.util.Properties; import java.util.Vector; import javax.swing.JComboBox; import javax.swing.JDialog; import javax.swing.JPanel; import org.apache.log4j.Logger; import org.tizzit.util.XercesHelper; import org.w3c.dom.Node; import de.juwimm.cms.content.ContentManager; import de.juwimm.cms.content.frame.DlgModalModule; import de.juwimm.swing.DropDownHolder; /** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2002</p> * <p>Company: </p> * @author <a href="mailto:s.kulawik@juwimm.com">Sascha-Matthias Kulawik</a> * @version $Id$ */ public class SimpleDropDown extends AbstractModule { private static Logger log = Logger.getLogger(SimpleDropDown.class); private JComboBox cboBox; private Vector<DropDownHolder> vec = new Vector<DropDownHolder>(); private JPanel pan = new JPanel(); private boolean imEnabled = true; public SimpleDropDown() { pan.setLayout(new BorderLayout()); pan.setDoubleBuffered(true); } public Object clone() { SimpleDropDown module = (SimpleDropDown) super.clone(false); return module; } public JDialog viewModalUI(boolean modal) { DlgModalModule frm = new DlgModalModule(this, pan, 250, 250, modal); frm.setVisible(true); return frm; } public JPanel viewPanelUI() { return pan; } public void setCustomProperties(String methodname, Properties parameters) { super.setCustomProperties(methodname, parameters); if (methodname.equals("dropdownValues")) { DropDownHolder ddh = new DropDownHolder(parameters.getProperty("value"), parameters.getProperty("name")); vec.add(ddh); } else if (methodname.equals("CustomConfigurationReady")) { cboBox = new JComboBox(vec); setEnabled(imEnabled); pan.add(cboBox, BorderLayout.CENTER); } } /** * Is always true, because there is always one element selected. * @return true */ public boolean isModuleValid() { return true; } /* (non-Javadoc) * @see de.juwimm.cms.content.modules.Module#save(org.xml.sax.ContentHandler) */ public void load() { } public Node getProperties() { if (log.isDebugEnabled()) log.debug("getProperties"); Node root = ContentManager.getDomDoc().createElement("dropdown"); DropDownHolder ddh = (DropDownHolder) this.cboBox.getSelectedItem(); Node value = ContentManager.getDomDoc().createElement("value"); Node txt = ContentManager.getDomDoc().createCDATASection((String) ddh.getObject()); value.appendChild(txt); root.appendChild(value); if (log.isDebugEnabled()) log.debug("RETURNED: " + (String) ddh.getObject()); return root; } public void setProperties(Node node) { if (log.isDebugEnabled()) log.debug("setProperties"); String value = XercesHelper.getNodeValue(node, "./value"); Iterator it = vec.iterator(); while (it.hasNext()) { DropDownHolder ddh = (DropDownHolder) it.next(); if (log.isDebugEnabled()) log.debug("value " + ddh.getObject()); if (((String) ddh.getObject()).equals(value)) { if (log.isDebugEnabled()) log.debug("SELECTED! " + value); this.cboBox.setSelectedItem(ddh); break; } } } public String getPaneImage() { return "16_datum.gif"; } public String getIconImage() { return "16_datum.gif"; } public void setEnabled(boolean enabling) { if (cboBox != null) cboBox.setEnabled(enabling); imEnabled = enabling; } public void recycle() { } }