Wrap text in table
This commit is contained in:
parent
a19a037b52
commit
7975e49b23
4 changed files with 97 additions and 3 deletions
|
@ -191,8 +191,8 @@ public class EditorGUI extends JFrame {
|
||||||
|
|
||||||
createDocPropsModel();
|
createDocPropsModel();
|
||||||
createCustomDocPropsModel();
|
createCustomDocPropsModel();
|
||||||
tableDocStandard = new JTable();
|
tableDocStandard = new MetadataTable();
|
||||||
tableDocCustom = new JTable();
|
tableDocCustom = new MetadataTable();
|
||||||
configureTableDocStandard();
|
configureTableDocStandard();
|
||||||
configureTableDocCustom();
|
configureTableDocCustom();
|
||||||
|
|
||||||
|
@ -218,7 +218,7 @@ public class EditorGUI extends JFrame {
|
||||||
|
|
||||||
private void addMetadataTab(OutlineElement element) {
|
private void addMetadataTab(OutlineElement element) {
|
||||||
JPanel panelOutline = new JPanel();
|
JPanel panelOutline = new JPanel();
|
||||||
JTable tableOutline = new JTable();
|
JTable tableOutline = new MetadataTable();
|
||||||
MetadataTableModel outlineTableModel = createOutlineTableModel(element);
|
MetadataTableModel outlineTableModel = createOutlineTableModel(element);
|
||||||
tableModels.add(outlineTableModel);
|
tableModels.add(outlineTableModel);
|
||||||
configureTableOutline(tableOutline, outlineTableModel);
|
configureTableOutline(tableOutline, outlineTableModel);
|
||||||
|
|
|
@ -0,0 +1,50 @@
|
||||||
|
package pro.litvinovg.libreoffice.metadata.views;
|
||||||
|
|
||||||
|
import java.awt.Component;
|
||||||
|
import java.awt.event.ComponentAdapter;
|
||||||
|
import java.awt.event.ComponentEvent;
|
||||||
|
import java.awt.event.KeyAdapter;
|
||||||
|
import java.awt.event.KeyEvent;
|
||||||
|
|
||||||
|
import javax.swing.AbstractCellEditor;
|
||||||
|
import javax.swing.JTable;
|
||||||
|
import javax.swing.JTextArea;
|
||||||
|
import javax.swing.table.TableCellEditor;
|
||||||
|
|
||||||
|
public class MetadataCellEditor extends AbstractCellEditor implements TableCellEditor {
|
||||||
|
JTextArea comp = new JTextArea();
|
||||||
|
JTable table;
|
||||||
|
int row;
|
||||||
|
|
||||||
|
public MetadataCellEditor() {
|
||||||
|
comp.setLineWrap(true);
|
||||||
|
comp.setWrapStyleWord(true);
|
||||||
|
comp.addComponentListener(new ComponentAdapter() {
|
||||||
|
public void componentResized(ComponentEvent e) {
|
||||||
|
super.componentResized(e);
|
||||||
|
table.setRowHeight(row, (int) (comp.getPreferredSize().getHeight()));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
comp.addKeyListener(new KeyAdapter() {
|
||||||
|
public void keyTyped(KeyEvent e) {
|
||||||
|
super.keyTyped(e);
|
||||||
|
table.setRowHeight(row, (int) (comp.getPreferredSize().getHeight()));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
|
||||||
|
this.table = table;
|
||||||
|
this.row = row;
|
||||||
|
|
||||||
|
comp.setText((String) value);
|
||||||
|
comp.setFont(table.getFont());
|
||||||
|
|
||||||
|
return comp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getCellEditorValue() {
|
||||||
|
return comp.getText();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
package pro.litvinovg.libreoffice.metadata.views;
|
||||||
|
|
||||||
|
import javax.swing.DefaultCellEditor;
|
||||||
|
import javax.swing.JTable;
|
||||||
|
import javax.swing.JTextField;
|
||||||
|
import javax.swing.table.DefaultTableCellRenderer;
|
||||||
|
import javax.swing.table.TableCellEditor;
|
||||||
|
import javax.swing.table.TableCellRenderer;
|
||||||
|
|
||||||
|
public class MetadataTable extends JTable {
|
||||||
|
|
||||||
|
public TableCellRenderer getCellRenderer(int row, int col) {
|
||||||
|
return new MetadataTableRenderer();
|
||||||
|
}
|
||||||
|
|
||||||
|
public TableCellEditor getCellEditor(int row, int col) {
|
||||||
|
return new MetadataCellEditor();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
package pro.litvinovg.libreoffice.metadata.views;
|
||||||
|
|
||||||
|
import java.awt.Component;
|
||||||
|
|
||||||
|
import javax.swing.JTable;
|
||||||
|
import javax.swing.JTextArea;
|
||||||
|
import javax.swing.table.TableCellRenderer;
|
||||||
|
|
||||||
|
public class MetadataTableRenderer extends JTextArea implements TableCellRenderer{
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
public MetadataTableRenderer() {
|
||||||
|
setOpaque(true);
|
||||||
|
setLineWrap(true);
|
||||||
|
setWrapStyleWord(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Component getTableCellRendererComponent(JTable table,Object value,
|
||||||
|
boolean isSelected, boolean hasFocus, int row,int column) {
|
||||||
|
|
||||||
|
this.setText(value == null ? "" : value.toString());
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue