package open.dolphin.client; import javax.swing.text.AbstractDocument; import javax.swing.text.BoxView; import javax.swing.text.ComponentView; import javax.swing.text.Element; import javax.swing.text.IconView; import javax.swing.text.LabelView; import javax.swing.text.ParagraphView; import javax.swing.text.StyleConstants; import javax.swing.text.StyledEditorKit; import javax.swing.text.View; import javax.swing.text.ViewFactory; import open.dolphin.project.Project; /** * * @author kazushi Minagawa. Digital Globe, Inc. */ public class KartePanel2M extends Panel2 { private static final int PREFERED_WIDTH = 340; private static final int PREFERED_HEIGHT = 600; private static final int MAX_HEIGHT = 4096; private javax.swing.JPanel jPanel2; private javax.swing.JTextPane pTextPane; private javax.swing.JTextPane soaTextPane; private javax.swing.JLabel timeStampLabel; private final int fontSize; public KartePanel2M() { fontSize = Project.getInt("karte.font.size.default"); initComponents(); } private void initComponents() { jPanel2 = new javax.swing.JPanel(); timeStampLabel = new javax.swing.JLabel(); soaTextPane = new javax.swing.JTextPane(); pTextPane = new javax.swing.JTextPane(); //masuda^ jdk7 wrap problem 2013/06/06 soaTextPane.setEditorKit(new WrapEditorKit()); pTextPane.setEditorKit(new WrapEditorKit()); //masuda$ setAutoscrolls(true); jPanel2.setMaximumSize(new java.awt.Dimension(55, 26)); timeStampLabel.setText(""); jPanel2.add(timeStampLabel); //soaTextPane.setFont(new java.awt.Font("SansSerif", 0, fontSize)); soaTextPane.setFont(new java.awt.Font("Lucida Grande", 0, fontSize)); soaTextPane.setMargin(new java.awt.Insets(10, 10, 10, 10)); soaTextPane.setPreferredSize(new java.awt.Dimension(PREFERED_WIDTH, PREFERED_HEIGHT)); //pTextPane.setFont(new java.awt.Font("SansSerif", 0, fontSize)); pTextPane.setFont(new java.awt.Font("Lucida Grande", 0, fontSize)); pTextPane.setMargin(new java.awt.Insets(10, 10, 10, 10)); pTextPane.setPreferredSize(new java.awt.Dimension(PREFERED_WIDTH, PREFERED_HEIGHT)); org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .add(soaTextPane, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, PREFERED_WIDTH, Short.MAX_VALUE) .add(2, 2, 2) .add(pTextPane, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, PREFERED_WIDTH, Short.MAX_VALUE)) .add(jPanel2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, PREFERED_WIDTH*2+2, Short.MAX_VALUE) ); layout.setVerticalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .add(jPanel2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 26, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) .add(pTextPane, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, MAX_HEIGHT, Short.MAX_VALUE) .add(soaTextPane, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, MAX_HEIGHT, Short.MAX_VALUE))) ); } //masuda^ jdk7 wrap 2013/06/06 class WrapEditorKit extends StyledEditorKit { ViewFactory defaultFactory=new WrapColumnFactory(); @Override public ViewFactory getViewFactory() { return defaultFactory; } } class WrapColumnFactory implements ViewFactory { @Override public View create(Element elem) { String kind = elem.getName(); if (kind != null) { if (kind.equals(AbstractDocument.ContentElementName)) { return new WrapLabelView(elem); } else if (kind.equals(AbstractDocument.ParagraphElementName)) { return new ParagraphView(elem); } else if (kind.equals(AbstractDocument.SectionElementName)) { return new BoxView(elem, View.Y_AXIS); } else if (kind.equals(StyleConstants.ComponentElementName)) { return new ComponentView(elem); } else if (kind.equals(StyleConstants.IconElementName)) { return new IconView(elem); } } // default to text display return new LabelView(elem); } } class WrapLabelView extends LabelView { public WrapLabelView(Element elem) { super(elem); } @Override public float getMinimumSpan(int axis) { switch (axis) { case View.X_AXIS: return 0; case View.Y_AXIS: return super.getMinimumSpan(axis); default: throw new IllegalArgumentException("Invalid axis: " + axis); } } } //masuda^ jdk7 wrap public javax.swing.JTextPane getPTextPane() { return pTextPane; } public javax.swing.JTextPane getSoaTextPane() { return soaTextPane; } public javax.swing.JLabel getTimeStampLabel() { return timeStampLabel; } public javax.swing.JPanel getTimeStampPanel() { return jPanel2; } }