package art.client.GUI.components.devices.window.colors.rtz32.tables; import art.library.gui.FlatGUI; import art.library.gui.flat.FlatLabel; import art.library.gui.flat.FlatPanel; import art.library.gui.flat.FlatScrollPane; import art.library.gui.flat.FlatTableInput; import art.library.gui.flat.table.FlatCellRender; import art.library.gui.flat.table.FlatTable; import art.library.gui.flat.table.Model.TableDataColumn; import art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration; import art.library.utils.resources.Resources; import java.awt.Color; import java.awt.Component; import java.awt.Insets; import java.io.File; import java.nio.file.Files; import javax.swing.JEditorPane; import javax.swing.JTable; import javax.swing.SwingConstants; import javax.swing.border.Border; import javax.swing.border.MatteBorder; public class Table extends FlatPanel { protected RTZ32_ControllerConfiguration configuration = null; protected boolean editable = false; protected FlatTable table = null; protected FlatTableInput tableinput = null; protected JEditorPane tooltip = null; protected FlatScrollPane scrollpane = null; public Table(RTZ32_ControllerConfiguration configuration, String filename) { this.tooltip = new JEditorPane(); this.tooltip.setContentType("text/html"); this.tooltip.putClientProperty(JEditorPane.HONOR_DISPLAY_PROPERTIES, Boolean.TRUE); this.tooltip.setFont(FlatGUI.lookDesign.getFont("label.font")); this.tooltip.setBackground(FlatGUI.lookDesign.getColor("tooltip.color.background")); this.tooltip.setForeground(FlatGUI.lookDesign.getColor("tooltip.color.foreground")); this.tooltip.setEditable(false); try { // TODO:es-ES coger el idioma del cliente File file = new File("data/art.client/rtz32/tooltips/es-ES/" + filename); if (file.exists() == true) { tooltip.setText(new String(Files.readAllBytes(file.toPath()))); } else { tooltip.setText(new String(Resources.getResourceBytes("data/art.client/rtz32/tooltips/es-ES/" + filename))); } } catch (Exception exception) { } scrollpane = new FlatScrollPane(tooltip); } public void editable(boolean value) { } public void reload(RTZ32_ControllerConfiguration configuration) { this.configuration = configuration; } protected class MyTableCellRenderHeader extends FlatCellRender { private Border border = null; public MyTableCellRenderHeader(FlatTable table, Insets borderInsets) { super(table); border = new MatteBorder(borderInsets.top, borderInsets.left, borderInsets.bottom, borderInsets.right, flatTable.getLook().headerColorBorder.darker()); this.flatLabel.getLook().opaque = true; this.flatLabel.getLook().font = flatTable.getLook().headerFont; this.flatLabel.getLook().colorBackground = flatTable.getLook().headerColorBackground; this.flatLabel.getLook().colorForeground = flatTable.getLook().headerColorForeground; this.flatLabel.getLook().horizontalAlignment = SwingConstants.CENTER; this.flatLabelSelected.getLook().font = flatTable.getLook().cellFontSelected; this.flatLabelSelected.getLook().opaque = flatTable.getLook().cellOpaqueSelected; this.flatLabelSelected.getLook().colorBackground = flatTable.getLook().cellColorBackgroundSelected; this.flatLabelSelected.getLook().colorForeground = flatTable.getLook().cellColorForegroundSelected; this.flatLabelSelected.getLook().horizontalAlignment = SwingConstants.CENTER; } public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { this.flatLabel.setBorder(border); this.flatLabelSelected.setBorder(border); if (isSelected) { if (value != null) { flatLabelSelected.setText(value.toString()); } else { flatLabelSelected.setText(""); } return flatLabelSelected; } else { if (value != null) { flatLabel.setText(value.toString()); } else { flatLabel.setText(""); } return flatLabel; } } } protected class MyTableCellRenderValue extends FlatCellRender { private Border border = null; private FlatLabel flatLabel0 = new FlatLabel(); private FlatLabel flatLabelSelected0 = new FlatLabel(); public MyTableCellRenderValue(FlatTable table, Insets borderInsets) { super(table); border = new MatteBorder(borderInsets.top, borderInsets.left, borderInsets.bottom, borderInsets.right, flatTable.getLook().headerColorBorder.darker()); this.flatLabel.getLook().opaque = true; this.flatLabel.getLook().font = flatTable.getLook().headerFont; this.flatLabel.getLook().colorBackground = FlatGUI.lookDesign.getColor("table.color.background"); this.flatLabel.getLook().colorForeground = flatTable.getLook().cellColorForeground; this.flatLabel.getLook().horizontalAlignment = SwingConstants.CENTER; this.flatLabel.getLook().border = true; this.flatLabelSelected.getLook().font = flatTable.getLook().cellFontSelected; this.flatLabelSelected.getLook().opaque = flatTable.getLook().cellOpaqueSelected; this.flatLabelSelected.getLook().colorBackground = flatTable.getLook().cellColorBackgroundSelected; this.flatLabelSelected.getLook().colorForeground = flatTable.getLook().cellColorForegroundSelected; this.flatLabelSelected.getLook().horizontalAlignment = SwingConstants.CENTER; this.flatLabelSelected.getLook().border = true; this.flatLabelSelected.revalidate(); this.flatLabel0.getLook().opaque = true; this.flatLabel0.getLook().font = flatTable.getLook().headerFont; this.flatLabel0.getLook().colorBackground = FlatGUI.lookDesign.getColor("table.color.background"); this.flatLabel0.getLook().colorForeground = Color.lightGray; this.flatLabel0.getLook().horizontalAlignment = SwingConstants.CENTER; this.flatLabel0.getLook().border = true; this.flatLabelSelected0.getLook().font = flatTable.getLook().cellFontSelected; this.flatLabelSelected0.getLook().opaque = flatTable.getLook().cellOpaqueSelected; this.flatLabelSelected0.getLook().colorBackground = flatTable.getLook().cellColorBackgroundSelected; this.flatLabelSelected0.getLook().colorForeground = Color.lightGray; this.flatLabelSelected0.getLook().horizontalAlignment = SwingConstants.CENTER; this.flatLabelSelected0.getLook().border = true; } public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { this.flatLabel.setBorder(border); this.flatLabelSelected.setBorder(border); this.flatLabel0.setBorder(border); this.flatLabelSelected0.setBorder(border); if (isSelected) { if (value != null) { if ((value instanceof Integer) && ((Integer)value == 0)) { flatLabelSelected0.setText(value.toString()); return flatLabelSelected0; } flatLabelSelected.setText(value.toString()); return flatLabelSelected; } flatLabelSelected.setText(""); return flatLabelSelected; } else { if (value != null) { if ((value instanceof Integer) && ((Integer)value == 0)) { flatLabel0.setText(value.toString()); return flatLabel0; } flatLabel.setText(value.toString()); return flatLabel; } flatLabel.setText(""); return flatLabel; } } } protected class MyTableCellRenderBoolean extends FlatCellRender { private Border border = null; public MyTableCellRenderBoolean(FlatTable table, Insets borderInsets) { super(table); border = new MatteBorder(borderInsets.top, borderInsets.left, borderInsets.bottom, borderInsets.right, flatTable.getLook().headerColorBorder.darker()); this.flatLabel.getLook().opaque = true; this.flatLabel.getLook().font = flatTable.getLook().headerFont; this.flatLabel.getLook().colorBackground = FlatGUI.lookDesign.getColor("table.color.background"); this.flatLabel.getLook().colorForeground = flatTable.getLook().cellColorForeground; this.flatLabel.getLook().horizontalAlignment = SwingConstants.CENTER; this.flatLabel.getLook().border = true; this.flatLabelSelected.getLook().font = flatTable.getLook().cellFontSelected; this.flatLabelSelected.getLook().opaque = flatTable.getLook().cellOpaqueSelected; this.flatLabelSelected.getLook().colorBackground = flatTable.getLook().cellColorBackgroundSelected; this.flatLabelSelected.getLook().colorForeground = flatTable.getLook().cellColorForegroundSelected; this.flatLabelSelected.getLook().horizontalAlignment = SwingConstants.CENTER; this.flatLabelSelected.getLook().border = true; this.flatCheck.getLook().opaque = true; this.flatCheck.getLook().font = flatTable.getLook().headerFont; this.flatCheck.getLook().colorBackground = FlatGUI.lookDesign.getColor("table.color.background"); this.flatCheck.getLook().colorForeground = flatTable.getLook().cellColorForeground; this.flatCheck.getLook().horizontalAlignment = SwingConstants.CENTER; this.flatCheck.getLook().border = true; this.flatCheckSelected.getLook().font = flatTable.getLook().cellFontSelected; this.flatCheckSelected.getLook().opaque = flatTable.getLook().cellOpaqueSelected; this.flatCheckSelected.getLook().colorBackground = flatTable.getLook().cellColorBackgroundSelected; this.flatCheckSelected.getLook().colorForeground = flatTable.getLook().cellColorForegroundSelected; this.flatCheckSelected.getLook().horizontalAlignment = SwingConstants.CENTER; this.flatCheckSelected.getLook().border = true; } public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { this.flatLabel.setBorder(border); this.flatLabelSelected.setBorder(border); this.flatCheck.setBorder(border); this.flatCheckSelected.setBorder(border); if (value == null) { if (isSelected) { flatLabelSelected.setText(""); return flatLabelSelected; } else { flatLabel.setText(""); return flatLabel; } } if (isSelected) { flatCheckSelected.setSelected(((Boolean)value).booleanValue()); return flatCheckSelected; } else { flatCheck.setSelected(((Boolean)value).booleanValue()); return flatCheck; } } } protected TableDataColumn newTableDataColumn(String name, String field, float width, boolean editable, boolean visibility, int alingnment, int min, int max) { TableDataColumn data = TableDataColumn.newTableDataColumnNumeric(name, field, width, editable, visibility, alingnment); try { data.markChanges = true; data.renderType = TableDataColumn.CELL_RENDER_NUMERIC; data.editorType = TableDataColumn.CELL_EDITOR_NUMERIC; data.minValue = min; data.maxValue = max; data.numeric = true; } catch (Exception exception) { exception.printStackTrace(); } return data; } // table.tableCellEditor.addCellEditorListener(new CellEditorListener() // { // public void editingCanceled(ChangeEvent e) { // System.out.println("The user canceled editing."); // } // // public void editingStopped(ChangeEvent e) { // System.out.println("The user stopped editing successfully."); // } // }); // // }