From: <dh...@us...> - 2014-04-14 12:42:32
|
Revision: 25593 http://sourceforge.net/p/jmri/code/25593 Author: dheap Date: 2014-04-14 12:42:29 +0000 (Mon, 14 Apr 2014) Log Message: ----------- Enhanced tool tips on ESU Function Map pane. Modified Paths: -------------- trunk/jmri/java/src/jmri/jmrit/symbolicprog/FnMapPanelESU.java trunk/jmri/java/src/jmri/jmrit/symbolicprog/tabbedframe/PaneProgPane.java Modified: trunk/jmri/java/src/jmri/jmrit/symbolicprog/FnMapPanelESU.java =================================================================== --- trunk/jmri/java/src/jmri/jmrit/symbolicprog/FnMapPanelESU.java 2014-04-13 15:53:31 UTC (rev 25592) +++ trunk/jmri/java/src/jmri/jmrit/symbolicprog/FnMapPanelESU.java 2014-04-14 12:42:29 UTC (rev 25593) @@ -16,6 +16,7 @@ import jmri.util.SystemType; import jmri.Application; import java.util.Arrays; +import jmri.jmrit.roster.RosterEntry; /** * <p>Provide a graphical representation of the ESU mapping table. @@ -113,7 +114,7 @@ final String[] outLabel = new String[maxOut]; final boolean[] outIsUsed = new boolean[maxOut]; - public FnMapPanelESU(VariableTableModel v, List<Integer> varsUsed, Element model) { + public FnMapPanelESU(VariableTableModel v, List<Integer> varsUsed, Element model, RosterEntry rosterEntry) { if (log.isDebugEnabled()) log.debug("ESU Function map starts"); _varModel = v; @@ -160,18 +161,33 @@ // find the variable using the output label String name = "ESU Function Row "+Integer.toString(iRow+1)+" Column "+Integer.toString(iOut+1); int iVar = _varModel.findVarIndex(name); + String fullColumnName = null; if (iVar>=0) { - // column labels + if ( outName[iOut].equals("SS") ) { + try { + fullColumnName = rosterEntry.getSoundLabel(Integer.valueOf(outLabel[iOut])); + } catch (Exception e) {} + } else if ( outName[iOut].startsWith("F") && ( outLabel[iOut].equalsIgnoreCase("on") || outLabel[iOut].equalsIgnoreCase("off") ) ) { + try { + fullColumnName = rosterEntry.getFunctionLabel(Integer.valueOf(outName[iOut].substring(1))) ; + } catch (Exception e) {} + } + if ( fullColumnName != null ) { + fullColumnName = outName[iOut]+" "+outLabel[iOut] + " (" + fullColumnName + ")"; + } else { + fullColumnName = outName[iOut]+" "+outLabel[iOut]; + } + // column labels if (iRow == 0) { - labelAt( outputNumRow, currentCol, outName[iOut]); - labelAt( outputLabelRow, currentCol, outLabel[iOut]); - labelAt( firstRow+numRows, currentCol, String.valueOf(iOut+1)); + labelAt( outputNumRow, currentCol, outName[iOut], fullColumnName); + labelAt( outputLabelRow, currentCol, outLabel[iOut], fullColumnName); + labelAt( firstRow+numRows, currentCol, String.valueOf(iOut+1), ("Column "+String.valueOf(iOut+1)+", "+fullColumnName)); } if (log.isDebugEnabled()) log.debug("Process var: "+name+" as index "+iVar); varsUsed.add(Integer.valueOf(iVar)); JComponent j = (JComponent)(_varModel.getRep(iVar, "checkbox")); VariableValue var = _varModel.getVariable(iVar); - j.setToolTipText(PaneProgPane.addCvDescription("Row "+Integer.toString(iRow+1)+", "+outName[iOut]+" "+outLabel[iOut], var.getCvDescription(), var.getMask())); + j.setToolTipText(PaneProgPane.addCvDescription(("Row "+Integer.toString(iRow+1)+", "+fullColumnName), var.getCvDescription(), var.getMask())); saveAt(currentRow, currentCol++, j); outIsUsed[iOut] = true; } else { @@ -233,8 +249,13 @@ } void labelAt(int row, int column, String name) { + this.labelAt(row, column, name, null); + } + + void labelAt(int row, int column, String name, String toolTip) { if (row<0 || column<0) return; JLabel t = new JLabel(" "+name+" "); + if ( toolTip != null ) t.setToolTipText(toolTip); saveAt(row, column, t); } Modified: trunk/jmri/java/src/jmri/jmrit/symbolicprog/tabbedframe/PaneProgPane.java =================================================================== --- trunk/jmri/java/src/jmri/jmrit/symbolicprog/tabbedframe/PaneProgPane.java 2014-04-13 15:53:31 UTC (rev 25592) +++ trunk/jmri/java/src/jmri/jmrit/symbolicprog/tabbedframe/PaneProgPane.java 2014-04-14 12:42:29 UTC (rev 25593) @@ -1531,7 +1531,7 @@ try { if (a!=null) extFnsESU = (a.getValue()).equalsIgnoreCase("yes");} catch (Exception ex) {log.error("error handling decoder's extFnsESU value");} if (extFnsESU) { - FnMapPanelESU l = new FnMapPanelESU(_varModel, varList, modelElem); + FnMapPanelESU l = new FnMapPanelESU(_varModel, varList, modelElem, rosterEntry); fnMapListESU.add(l); // remember for deletion cs.gridwidth = GridBagConstraints.REMAINDER; g.setConstraints(l, cs); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |