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();
|
||||
createCustomDocPropsModel();
|
||||
tableDocStandard = new JTable();
|
||||
tableDocCustom = new JTable();
|
||||
tableDocStandard = new MetadataTable();
|
||||
tableDocCustom = new MetadataTable();
|
||||
configureTableDocStandard();
|
||||
configureTableDocCustom();
|
||||
|
||||
|
@ -218,7 +218,7 @@ public class EditorGUI extends JFrame {
|
|||
|
||||
private void addMetadataTab(OutlineElement element) {
|
||||
JPanel panelOutline = new JPanel();
|
||||
JTable tableOutline = new JTable();
|
||||
JTable tableOutline = new MetadataTable();
|
||||
MetadataTableModel outlineTableModel = createOutlineTableModel(element);
|
||||
tableModels.add(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