📄 confirmpage.java
字号:
package net.sf.dz.setup.core;import java.awt.GridBagConstraints;import java.awt.GridBagLayout; import java.awt.event.ActionEvent;import java.awt.event.ItemEvent;import java.util.Iterator;import java.util.Map;import java.util.Set;import javax.swing.JScrollPane;import javax.swing.JTextPane;import org.freehold.jukebox.logger.Logger;import net.sf.dz.util.wizard.Wizard;import net.sf.dz.util.wizard.WizardPage;class ConfirmPage extends WizardPage { private JScrollPane messageScroller; private JTextPane messageArea = new JTextPane(); public ConfirmPage(Logger logger, Wizard owner) { super(logger, owner, "Confirm Configuration"); messageScroller = new JScrollPane(messageArea); messageScroller.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); messageScroller.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); GridBagLayout layout = new GridBagLayout(); GridBagConstraints cs = new GridBagConstraints(); getContentPane().setLayout(layout); cs.fill = GridBagConstraints.BOTH; cs.weightx = 1; cs.weighty = 1; layout.setConstraints(messageScroller, cs); getContentPane().add(messageScroller); messageArea.setEditable(false); validate(); } public String getHelpURL() { return null; } public String validate() { if ( !isVisible() ) { return ""; } Map context = getOwner().getContext(); StringBuffer sb = new StringBuffer(); sb.append("<html><body><h1>Please review the results</h1>"); Boolean configFile = (Boolean)context.get("config.new"); if ( configFile == null ) { // They're not ready yet return "config.new missing"; } if ( configFile.booleanValue() ) { sb.append("<br>New configuration file will be created;"); } else { sb.append("<br>Existing configuration used;"); } sb.append("<br>Configuration file location: <code>").append(context.get("config.file")).append("</code>"); sb.append("<br>Persistent schedule directory: <code>").append(context.get("schedule.dir")).append("</code>"); sb.append("<table border=0><tr><td>"); pnp(context, "Broadcaster PnP", "connector.broadcaster", sb); sb.append("</td><td>"); pnp(context, "Controller PnP", "connector.controller", sb); sb.append("</td></tr></table>"); sb.append("<h2>HVAC Units Configured</h2>"); Set unitSet = getSortedContextValues("unit."); boolean only = unitSet.size() == 1; for ( Iterator i = unitSet.iterator(); i.hasNext(); ) { showUnit(context, (UnitDescriptor)i.next(), only, sb); } sb.append("<h2>Temperature Zones Configured</h2>"); Set zoneSet = getSortedContextValues("zone."); for ( Iterator i = zoneSet.iterator(); i.hasNext(); ) { showZone(context, (ZoneDescriptor)i.next(), sb); } sb.append("<hr><h2>Raw configuration map</h2><pre>"); for ( Iterator i = context.keySet().iterator(); i.hasNext(); ) { Object key = i.next(); Object value = context.get(key); sb.append(key.toString() + ": " + value + "\n"); } sb.append("</pre></body></html>"); String message = sb.toString(); messageArea.setContentType("text/html"); messageArea.setText(message); // There's nothing to validate return ""; } private void pnp(Map context, String title, String prefix, StringBuffer sb) { sb.append("<h3>").append(title).append(" Settings</h3>"); sb.append("<table border=0>"); sb.append("<tr><td>Bind port:</td><td>").append(context.get(prefix + ".bind")).append("</td></tr>"); sb.append("<tr><td>Listening to annnounces on port:</td><td>").append(context.get(prefix + ".announce")).append("</td></tr>"); sb.append("<tr><td>Communication is secure:</td><td>").append(context.get(prefix + ".secure")).append("</td></tr>"); sb.append("</table>"); } private void showUnit(Map context, UnitDescriptor ud, boolean only, StringBuffer sb) { sb.append("<h3>").append(ud.name).append("</h3><table border=0>"); String unitType = (String)ud.propertyMap.get("type"); if ( unitType == null ) { complain(LOG_WARNING, CH_WP, "Unit not properly initialized, defaulted to dumb heat pump: " + ud); unitType = "heat pump"; ud.propertyMap.put("type", unitType); ud.propertyMap.put("emergency", new Boolean(false)); ud.propertyMap.put("energize", "cool"); ud.propertyMap.put("multistage", new Boolean(false)); ud.propertyMap.put("vs", new Boolean(false)); } sb.append("<tr><td>Unit type</td><td>").append(unitType).append("</td></tr>"); if ( "heat pump".equals(unitType) ) { sb.append("<tr><td>Emergency heat available</td><td>").append(ud.propertyMap.get("emergency")).append("</td></tr>"); sb.append("<tr><td>Energize to</td><td>").append(ud.propertyMap.get("energize")).append("</td></tr>"); } if ( "ac".equals(unitType) || "heat pump".equals(unitType) ) { sb.append("<tr><td>Multistage Unit</td><td>").append(ud.propertyMap.get("multistage")).append("</td></tr>"); sb.append("<tr><td>Variable Speed Blower</td><td>").append(ud.propertyMap.get("vs")).append("</td></tr>"); } sb.append("</table>"); if ( !only ) { sb.append("<h4>Zones served</h4><ul>"); for ( Iterator i = ud.zoneSet.iterator(); i.hasNext(); ) { ZoneDescriptor zd = (ZoneDescriptor)i.next(); sb.append("<li>").append(zd.name); } sb.append("</ul>"); } } private void showZone(Map context, ZoneDescriptor zd, StringBuffer sb) { sb.append("<h3>").append(zd.name).append("</h3><table border=0>"); sb.append("<tr><td>Sensor address</td><td>"); if ( zd.sensor != null ) { sb.append(zd.sensor.address); } else { sb.append("<font color=red>NONE</font>"); } sb.append("</td></tr>"); sb.append("<tr><td>Servo used</td><td>"); if ( zd.servo != null ) { sb.append(zd.servo.getComparable()); } else { sb.append("<font color=red>NONE</font>"); } sb.append("</table>"); } protected void actionPerformed2(ActionEvent e) { } protected void itemStateChanged2(ItemEvent e) { } public boolean isEnabled() { return true; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -