/*FreeMind - A Program for creating and viewing Mindmaps
*Copyright (C) 2000-2006 Christian Foltin and others
*See COPYING for Details
*
*This program is free software; you can redistribute it and/or
*modify it under the terms of the GNU General Public License
*as published by the Free Software Foundation; either version 2
*of the License, or (at your option) any later version.
*
*This program is distributed in the hope that it will be useful,
*but WITHOUT ANY WARRANTY; without even the implied warranty of
*MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
*GNU General Public License for more details.
*
*You should have received a copy of the GNU General Public License
*along with this program; if not, write to the Free Software
*Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package freemind.modes.browsemode;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.ImageIcon;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import freemind.modes.ControllerAdapter;
import freemind.modes.MindMapNode;
import freemind.modes.ModeController.NodeSelectionListener;
import freemind.modes.common.plugins.NodeNoteBase;
import freemind.view.mindmapview.NodeView;
/**
* @author foltin
*
*/
public class NodeNoteViewer extends NodeNoteBase implements
NodeSelectionListener {
private JComponent noteScrollPane;
private JLabel noteViewer;
private final ControllerAdapter mBrowseController;
private static ImageIcon noteIcon = null;
public NodeNoteViewer(ControllerAdapter pBrowseController) {
mBrowseController = pBrowseController;
}
protected JComponent getNoteViewerComponent(String text) {
if (noteViewer == null) {
noteViewer = new JLabel();
noteViewer.setBackground(Color.WHITE);
noteViewer.setVerticalAlignment(JLabel.TOP);
noteViewer.setOpaque(true);
noteScrollPane = new JScrollPane(noteViewer);
noteScrollPane.setPreferredSize(new Dimension(1, 200));
}
return noteScrollPane;
}
public void onLostFocusNode(NodeView pNode) {
mBrowseController.getFrame().removeSplitPane();
}
public void onFocusNode(NodeView pNode) {
String noteText = pNode.getModel().getNoteText();
if (noteText != null && !noteText.equals("")) {
// logger.info("Panel added");
mBrowseController.getFrame().insertComponentIntoSplitPane(
getNoteViewerComponent(noteText));
noteViewer.setText(noteText != null ? noteText : "");
}
}
public void onSaveNode(MindMapNode pNode) {
}
public void onUpdateNodeHook(MindMapNode pNode) {
setStateIcon(pNode, true);
}
/** Copied from NodeNoteRegistration. */
protected void setStateIcon(MindMapNode node, boolean enabled) {
// icon
if (noteIcon == null) {
noteIcon = new ImageIcon(
mBrowseController.getResource("images/knotes.png"));
}
node.setStateIcon(NODE_NOTE_ICON, (enabled) ? noteIcon : null);
}
/* (non-Javadoc)
* @see freemind.modes.ModeController.NodeSelectionListener#onSelectionChange(freemind.modes.MindMapNode, boolean)
*/
public void onSelectionChange(NodeView pNode, boolean pIsSelected) {
}
}