diff --git a/src/org/openlcb/cdi/jdom/CdiMemConfigReader.java b/src/org/openlcb/cdi/jdom/CdiMemConfigReader.java index 522cf458..e9a84d0f 100644 --- a/src/org/openlcb/cdi/jdom/CdiMemConfigReader.java +++ b/src/org/openlcb/cdi/jdom/CdiMemConfigReader.java @@ -2,6 +2,7 @@ package org.openlcb.cdi.jdom; +import java.util.ArrayList; import java.util.logging.Level; import java.util.logging.Logger; import static java.util.logging.Logger.getLogger; @@ -42,19 +43,19 @@ public CdiMemConfigReader(NodeID node, OlcbInterface iface, int space) { long nextAddress = 0; - StringBuffer buf; + ArrayList buf = new ArrayList(); ReaderAccess retval; public void startLoadReader(ReaderAccess retval) { this.retval = retval; nextAddress = 0; - buf = new StringBuffer(); + buf = new ArrayList(); nextRequest(); } void nextRequest() { if (retval != null) { - retval.progressNotify(buf.length(), -1); + retval.progressNotify(buf.size(), -1); } MemoryConfigurationService.McsReadHandler memo = new MemoryConfigurationService.McsReadHandler() { @@ -92,7 +93,7 @@ public void handleReadData(NodeID dest, int space, long address, byte[] data) { done(); return; // don't do next request } - buf.append((char)data[i]); + buf.add(data[i]); } // repeat if not done nextAddress = nextAddress + LENGTH; @@ -105,9 +106,20 @@ public void handleReadData(NodeID dest, int space, long address, byte[] data) { private void done() { // done, pass back a reader based on the current buffer contents if (retval != null) { - retval.progressNotify(buf.length(), buf.length()); - logger.log(Level.FINE, "Retrieved XML: \n{0}", buf); - retval.provideReader(new java.io.StringReader(new String(buf))); + retval.progressNotify(buf.size(), buf.size()); + byte[] byteArray = new byte[buf.size()]; + for (int i = 0 ; i navPanels = new ArrayList<>(); private final Color COLOR_BACKGROUND; private CollapsiblePanel sensorHelperPanel; - /// Panel at the bottom of the window with command buttons. - //private JPanel bottomPanel; /// To get focus to the bottom panel, this component needs to be activated. private JComponent bottomPanelHead; + + static private Font tabFont; // this will be referenced in getTabLabel below + static { + // ensure that JTabbedPane pane labels use + // the specific Dialog font + int size = 12; + Font defaultTabbedFont = UIManager.getFont("TabbedPane.font"); + if (defaultTabbedFont != null) { + size = defaultTabbedFont.getSize(); + } else { + logger.log(Level.WARNING, "Did not find default TabbedPane font, please report this."); + } + tabFont = new Font("Dialog", Font.PLAIN, size); + } public CdiPanel () { super(); @@ -1190,6 +1202,7 @@ public void propertyChange(PropertyChangeEvent event) { */ protected JComponent getTabLabel(JTabbedPane parentTabbedPane, int index, String name, ConfigRepresentation.GroupRep rep) { JLabel tabLabel = new JLabel(name); + tabLabel.setFont(tabFont); tabLabel.addMouseListener(new MouseAdapter() {