diff --git a/swing/src/net/sf/openrocket/gui/main/componenttree/ComponentTreeRenderer.java b/swing/src/net/sf/openrocket/gui/main/componenttree/ComponentTreeRenderer.java index de9982b58..2ab5a5865 100644 --- a/swing/src/net/sf/openrocket/gui/main/componenttree/ComponentTreeRenderer.java +++ b/swing/src/net/sf/openrocket/gui/main/componenttree/ComponentTreeRenderer.java @@ -2,12 +2,17 @@ package net.sf.openrocket.gui.main.componenttree; +import java.awt.BorderLayout; import java.awt.Component; +import javax.swing.JLabel; +import javax.swing.JPanel; import javax.swing.JTree; +import javax.swing.UIManager; import javax.swing.tree.DefaultTreeCellRenderer; import net.sf.openrocket.gui.main.ComponentIcons; +import net.sf.openrocket.rocketcomponent.MassComponent; import net.sf.openrocket.rocketcomponent.RocketComponent; import net.sf.openrocket.unit.UnitGroup; import net.sf.openrocket.util.TextUtil; @@ -24,28 +29,44 @@ public class ComponentTreeRenderer extends DefaultTreeCellRenderer { int row, boolean hasFocus1) { - super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus1); + Component comp = super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus1); // Set icon setIcon(ComponentIcons.getSmallIcon(value.getClass())); - // Set tooltip RocketComponent c = (RocketComponent) value; + + if ( c.isMassOverridden() ) { + JPanel p = new JPanel(); + p.setLayout( new BorderLayout() ); + p.setBackground( UIManager.getColor("Tree.textBackground")); + p.setForeground( UIManager.getColor("Tree.textForeground")); + p.add(comp, BorderLayout.WEST); + p.add(new JLabel( ComponentIcons.getSmallIcon(MassComponent.class) ), BorderLayout.EAST ); + p.setToolTipText(getToolTip(c)); + comp = p; + } + + // Set tooltip this.setToolTipText(getToolTip(c)); - return this; + return comp; } - private String getToolTip(RocketComponent c) { + private static String getToolTip(RocketComponent c) { StringBuilder sb = new StringBuilder(); sb.append(""); sb.append("").append(c.getName()).append(""); - if (c.isMassive()) { + if (c.isMassive() || c.isMassOverridden() ) { sb.append(" (").append(UnitGroup.UNITS_MASS.toStringUnit(c.getMass())).append(")"); } + if ( c.isMassOverridden() ) { + sb.append(" mass override"); + } + String comment = c.getComment().trim(); if (comment.length() > 0) { comment = TextUtil.escapeXML(comment);