package hermes.browser.dialog.message; import hermes.browser.HermesBrowser; import hermes.config.HermesConfig; import hermes.swing.PropertyRow; import hermes.swing.PropertyType; import hermes.util.TextUtils; import java.util.Enumeration; import javax.jms.JMSException; import javax.jms.Message; import org.apache.log4j.Logger; public class UserHeaderPropertyPanel extends GenericPropertyPanel { private static final Logger log = Logger.getLogger(UserHeaderPropertyPanel.class); public UserHeaderPropertyPanel(Message message) throws JMSException { super(true); if (message != null) { HermesConfig config = HermesBrowser.getBrowser().getConfig() ; for (Enumeration<String> e = message.getPropertyNames(); e.hasMoreElements();) { PropertyRow row = new PropertyRow(); row.name = e.nextElement(); row.value = message.getObjectProperty(row.name); row.type = PropertyType.fromObject(row.value); if (config.isCopyJMSProviderProperties() || !row.name.startsWith("JMS")) { model.addRow(row); } } } } public void setProperties(Message message) throws NumberFormatException, JMSException { for (int i = 0; i < model.getRowCount(); i++) { PropertyRow row = model.getRow(i); if (!TextUtils.isEmpty(row.name)) { switch (row.type) { case INT: message.setIntProperty(row.name, row.value == null ? null : Integer.decode(row.value.toString())); break; case DOUBLE: message.setDoubleProperty(row.name, row.value == null ? null : Double.parseDouble(row.value.toString())); break; case LONG: message.setLongProperty(row.name, row.value == null ? null : Long.decode(row.value.toString())); break; case BOOLEAN: message.setBooleanProperty(row.name, row.value == null ? null : Boolean.parseBoolean(row.value.toString())); break; case CHAR: message.setStringProperty (row.name, row.value == null ? null : row.value.toString()); break; case STRING: message.setStringProperty(row.name, row.value == null ? null : row.value.toString()); break; case BYTE: message.setByteProperty(row.name, row.value == null ? null : Byte.parseByte(row.value.toString())); break; } } } } }