From: tama3 Date: Tue, 10 Jul 2007 09:27:04 +0000 (+0000) Subject: move to top level class and rename it (Renderer) X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=4c7c6a3e40a4d7cc2a31987a1e413e0bded44c48;p=stigmata%2Fstigmata-core.git move to top level class and rename it (Renderer) git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/stigmata/trunk@159 acee48c3-7b26-0410-bdac-b3d0e5314bbc --- diff --git a/src/main/java/jp/naist/se/stigmata/ui/swing/ClippedLRListCellRenderer.java b/src/main/java/jp/naist/se/stigmata/ui/swing/ClippedLRListCellRenderer.java new file mode 100755 index 0000000..b0531f3 --- /dev/null +++ b/src/main/java/jp/naist/se/stigmata/ui/swing/ClippedLRListCellRenderer.java @@ -0,0 +1,106 @@ +package jp.naist.se.stigmata.ui.swing; + +/* + * $Id$ + */ + +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Component; +import java.awt.Dimension; +import java.awt.SystemColor; + +import javax.swing.BorderFactory; +import javax.swing.Icon; +import javax.swing.JLabel; +import javax.swing.JList; +import javax.swing.JPanel; +import javax.swing.ListCellRenderer; + +/** + * copy from tempura memo available at + * http://terai.xrea.jp/Swing/ClippedLRComboBox.html + * + * @author Haruaki Tamada + * @version $Revision$ $Date$ + */ +public class ClippedLRListCellRenderer extends JPanel implements ListCellRenderer{ + private static final long serialVersionUID = 32943674625674235L; + + private final JLabel left = new JLabel(); + private final JLabel right = new JLabel(); + + public ClippedLRListCellRenderer(Dimension dim, int rightWidth){ + super(new BorderLayout()); + left.setOpaque(true); + right.setOpaque(true); + left.setBorder(BorderFactory.createEmptyBorder(0, 2, 0, 0)); + right.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 0)); + right.setPreferredSize(new Dimension(rightWidth, 0)); + + add(left, BorderLayout.CENTER); + add(right, BorderLayout.EAST); + setPreferredSize(dim); + } + + public Component getListCellRendererComponent(JList list, Object value, int index, + boolean isSelected, boolean cellHasFocus){ + LRItem item = (LRItem)value; + if(item != null){ + left.setText(String.valueOf(item.getLeft())); + right.setText(String.valueOf(item.getRight())); + } + + if(item.getIcon() != null){ + left.setIcon(item.getIcon()); + } + + setBackground(isSelected ? SystemColor.textHighlight: Color.white); + left.setBackground(isSelected ? SystemColor.textHighlight: Color.white); + right.setBackground(isSelected ? SystemColor.textHighlight: Color.white); + left.setForeground(isSelected ? Color.white: Color.black); + right.setForeground(isSelected ? Color.gray.brighter(): Color.gray); + + return this; + } + + public static class LRItem{ + private Object left; + private Object right; + private Icon icon; + + public LRItem(Icon icon, Object left, Object right){ + this(left, right); + setIcon(icon); + } + + public LRItem(Object left, Object right){ + setLeft(left); + setRight(right); + } + + public Icon getIcon(){ + return icon; + } + + public void setIcon(Icon icon){ + this.icon = icon; + } + + public Object getLeft(){ + return left; + } + + public void setLeft(Object left){ + this.left = left; + } + + public Object getRight(){ + return right; + } + + public void setRight(Object right){ + this.right = right; + } + } +} \ No newline at end of file diff --git a/src/main/java/jp/naist/se/stigmata/ui/swing/PairComparisonPane.java b/src/main/java/jp/naist/se/stigmata/ui/swing/PairComparisonPane.java index 96b7bfd..cf3932a 100644 --- a/src/main/java/jp/naist/se/stigmata/ui/swing/PairComparisonPane.java +++ b/src/main/java/jp/naist/se/stigmata/ui/swing/PairComparisonPane.java @@ -5,12 +5,9 @@ package jp.naist.se.stigmata.ui.swing; */ import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Component; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.GridLayout; -import java.awt.SystemColor; import java.io.IOException; import java.io.PrintWriter; @@ -19,12 +16,10 @@ import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JLabel; -import javax.swing.JList; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JSplitPane; import javax.swing.JTree; -import javax.swing.ListCellRenderer; import javax.swing.border.TitledBorder; import jp.naist.se.stigmata.BirthmarkSet; @@ -68,9 +63,9 @@ public class PairComparisonPane extends JPanel{ label.setBorder(BorderFactory.createTitledBorder(Messages.getString("result.border"))); JComboBox combo = new JComboBox(); for(ComparisonPairElement elem : pair){ - combo.addItem(elem); + combo.addItem(new ClippedLRListCellRenderer.LRItem(elem.getType(), elem.getSimilarity())); } - combo.setRenderer(new ComparisonPairElementRenderer(new Dimension(100, combo.getPreferredSize().height), 50)); + combo.setRenderer(new ClippedLRListCellRenderer(new Dimension(100, combo.getPreferredSize().height), 50)); combo.setBorder(BorderFactory.createTitledBorder(Messages.getString("eachbirthmarksimilarity.border"))); similarityPanel.add(label); similarityPanel.add(combo); @@ -123,45 +118,4 @@ public class PairComparisonPane extends JPanel{ return panel; } - - /** - * copy from tempura memo available at - * http://terai.xrea.jp/Swing/ClippedLRComboBox.html - */ - private static class ComparisonPairElementRenderer extends JPanel implements ListCellRenderer{ - private static final long serialVersionUID = 32943674625674235L; - private final JLabel left = new JLabel(); - - private final JLabel right = new JLabel(); - - public ComparisonPairElementRenderer(Dimension dim, int rightWidth){ - super(new BorderLayout()); - setOpaque(true); - left.setOpaque(true); - right.setOpaque(true); - left.setBorder(BorderFactory.createEmptyBorder(0, 2, 0, 0)); - right.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 0)); - right.setPreferredSize(new Dimension(rightWidth, 0)); - add(left, BorderLayout.CENTER); - add(right, BorderLayout.EAST); - setPreferredSize(dim); - } - - public Component getListCellRendererComponent(JList list, Object value, int index, - boolean isSelected, boolean cellHasFocus){ - ComparisonPairElement elem = (ComparisonPairElement)value; - if(elem != null){ - left.setText(elem.getType()); - right.setText(Double.toString(elem.getSimilarity())); - } - - setBackground(isSelected ? SystemColor.textHighlight: Color.white); - left.setBackground(isSelected ? SystemColor.textHighlight: Color.white); - right.setBackground(isSelected ? SystemColor.textHighlight: Color.white); - left.setForeground(isSelected ? Color.white: Color.black); - right.setForeground(isSelected ? Color.gray.brighter(): Color.gray); - - return this; - } - } }