📄 unitpanel.java
字号:
package net.sf.dz.view.tcp.client;import java.awt.GridBagLayout;import java.awt.GridBagConstraints;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Set;import java.util.StringTokenizer;import java.util.TreeMap;import java.util.TreeSet;import javax.swing.BorderFactory;import javax.swing.JPanel;import org.freehold.jukebox.logger.LogAware;import org.freehold.jukebox.logger.LogChannel;public class UnitPanel extends LogAware { public final LogChannel CH_UP; private ClientDaemon daemon; private Map zone2panel = new TreeMap(); private String unitName; private final String prefix; private JPanel panel; private HvacPanel hvacPanel; private GridBagLayout layout = new GridBagLayout(); private GridBagConstraints cs = new GridBagConstraints(); public UnitPanel(ClientDaemon daemon, String unitName) { CH_UP = new LogChannel("Unit/" + unitName); this.daemon = daemon; this.unitName = unitName; prefix = "unit:" + unitName + ":"; panel = new JPanel(); panel.setLayout(layout); } public JPanel getPanel() { return panel; } protected void configure() throws Throwable { List zoneNames = getConfiguration().getList(getConfigurationRoot() + ".zone"); complain(LOG_INFO, CH_UP, "Zones: " + zoneNames); cs.gridx = 0; cs.gridy = 0; cs.fill = GridBagConstraints.BOTH; cs.weightx = 1; cs.weighty = 1; cs.gridwidth = 1; hvacPanel = new HvacPanel(daemon, unitName); layout.setConstraints(hvacPanel, cs); panel.add(hvacPanel); cs.gridx = 0; cs.gridy++; Set zoneSet = new TreeSet(); for ( Iterator i = zoneNames.iterator(); i.hasNext(); ) { String zoneName = i.next().toString(); zoneSet.add(zoneName); ZonePanel zonePanel = new ZonePanel(this, zoneName); zonePanel.setLogger(getLogger()); zonePanel.configure(getConfigurationRoot() + ".zone." + zoneName, getConfiguration()); zone2panel.put(zoneName, zonePanel); layout.setConstraints(zonePanel.getPanel(), cs); panel.add(zonePanel.getPanel()); cs.gridy++; } hvacPanel.setZones(zoneSet); } public void parse(StringTokenizer st) throws Throwable { String target = st.nextToken(); if ( "zone".equals(target) ) { String zoneName = st.nextToken(); ZonePanel zonePanel = (ZonePanel)zone2panel.get(zoneName); if ( zonePanel == null ) { throw new IllegalArgumentException("Non-existent zone: '" + zoneName + "'"); } zonePanel.parse(st); } else if ( "ac".equals(target) ) { hvacPanel.parse(st); } else { throw new IllegalArgumentException("Unsupported target: '" + target + "'"); } } public String getName() { return unitName; } public synchronized void send(String command) { daemon.send(prefix + command); } public void setHvacGraph(boolean enabled) { hvacPanel.setHvacGraph(enabled); } public void setZoneGraph(boolean enabled) { hvacPanel.setZoneGraph(enabled); } public void setPConGraph(boolean enabled) { for ( Iterator i = zone2panel.keySet().iterator(); i.hasNext(); ) { Object name = i.next(); ZonePanel zp = (ZonePanel)zone2panel.get(name); zp.setPConGraph(enabled); } } public void setDamperGraph(boolean enabled) { for ( Iterator i = zone2panel.keySet().iterator(); i.hasNext(); ) { Object name = i.next(); ZonePanel zp = (ZonePanel)zone2panel.get(name); zp.setDamperGraph(enabled); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -