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.");
|
// }
|
// });
|
//
|
//
|
|
}
|