added tooltips to component tree and InsertHistory

This commit is contained in:
hneemann 2017-03-30 17:33:26 +02:00
parent 618a02051a
commit cd7fbec7e6
5 changed files with 38 additions and 7 deletions

View File

@ -1,8 +1,11 @@
package de.neemann.digital.draw.library;
import de.neemann.digital.core.element.ElementAttributes;
import de.neemann.digital.core.element.ElementTypeDescription;
import de.neemann.digital.draw.elements.VisualElement;
import de.neemann.digital.draw.shapes.ShapeFactory;
import de.neemann.digital.lang.Lang;
import de.neemann.gui.StringUtils;
import javax.swing.*;
import java.io.File;
@ -271,4 +274,17 @@ public class LibraryNode implements Iterable<LibraryNode> {
icon = null;
library.fireLibraryChanged(this);
}
/**
* @return the tool tip text
*/
public String getToolTipText() {
if (isCustom()) {
if (description == null)
return null;
else
return StringUtils.textToHTML(description.getDescription(new ElementAttributes()));
} else
return StringUtils.textToHTML(Lang.getNull("elem_" + getName() + "_tt"));
}
}

View File

@ -82,4 +82,11 @@ public final class InsertAction extends ToolTipAction {
SwingUtilities.invokeLater(new ErrorMessage(Lang.get("msg_errorImportingModel")).addCause(ex));
}
}
/**
* @return the library node
*/
public LibraryNode getNode() {
return node;
}
}

View File

@ -44,7 +44,7 @@ public class InsertHistory implements LibraryListener {
if (!contains(action)) {
WrapperAction wrapper = new WrapperAction(action, bar.getComponentCount());
wrappers.add(wrapper);
bar.add(wrapper);
bar.add(wrapper).setToolTipText(action.getNode().getToolTipText());
if (wrappers.size() > MAX_ICONS) {
int oldest = findOldestIndex();
removeWrapperFromToolBar(wrappers.get(oldest));

View File

@ -7,7 +7,6 @@ import de.neemann.digital.draw.shapes.ShapeFactory;
import de.neemann.digital.gui.components.CircuitComponent;
import de.neemann.digital.lang.Lang;
import de.neemann.gui.ErrorMessage;
import de.neemann.gui.StringUtils;
import de.neemann.gui.ToolTipAction;
import javax.swing.*;
@ -85,7 +84,7 @@ public class LibrarySelector implements LibraryListener {
private void addComponents(JMenu parts, LibraryNode node) {
if (node.isLeaf()) {
parts.add(new InsertAction(node, insertHistory, circuitComponent, shapeFactory)
.setToolTip(createToolTipText(node.getName()))
.setToolTip(node.getToolTipText())
.createJMenuItem());
} else {
JMenu subMenu = new JMenu(node.getName());
@ -94,8 +93,4 @@ public class LibrarySelector implements LibraryListener {
parts.add(subMenu);
}
}
private static String createToolTipText(String elementName) {
return StringUtils.textToHTML(Lang.getNull("elem_" + elementName + "_tt"));
}
}

View File

@ -57,6 +57,19 @@ public class SelectTree extends JTree {
}
});
setCellRenderer(new MyCellRenderer());
setToolTipText("");
}
@Override
public String getToolTipText(MouseEvent e) {
TreePath selPath = getPathForLocation(e.getX(), e.getY());
if (selPath != null && selPath.getPathCount() > 0) {
Object lp = selPath.getLastPathComponent();
if (lp instanceof LibraryNode) {
return ((LibraryNode) lp).getToolTipText();
}
}
return null;
}
private class MyCellRenderer extends DefaultTreeCellRenderer {