Added simple mass indicator.

This commit is contained in:
kruland2607 2014-04-08 08:31:21 -05:00
parent 4565cdcd86
commit 9a85ba0099

View File

@ -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("<html>");
sb.append("<b>").append(c.getName()).append("</b>");
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);