/*
* Copyright (C) 2008-2015 by Holger Arndt
*
* This file is part of the Java Data Mining Package (JDMP).
* See the NOTICE file distributed with this work for additional
* information regarding copyright ownership and licensing.
*
* JDMP is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* JDMP is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with JDMP; if not, write to the
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301 USA
*/
package org.jdmp.gui.variable;
import java.awt.Component;
import java.awt.Image;
import java.awt.image.BufferedImage;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableModel;
import org.jdmp.core.variable.Variable;
import org.ujmp.gui.AbstractGUIObject;
public class VariableGUIObject extends AbstractGUIObject {
private static final long serialVersionUID = 9145766876402222560L;
private Variable variable = null;
private transient JFrame frame = null;
private transient JPanel panel = null;
public VariableGUIObject(Variable v) {
this.variable = v;
}
public void clear() {
variable.clear();
}
public final Image getIcon() {
try {
TableModel dataModel = new AbstractTableModel() {
private static final long serialVersionUID = 5562866897873790623L;
public int getColumnCount() {
return 1;
}
public int getRowCount() {
return 1;
}
public Object getValueAt(int row, int col) {
return getCoreObject().getLast();
}
};
JTable table = new JTable(dataModel);
table.getColumnModel().getColumn(0).setWidth(32);
table.setRowHeight(32);
int WIDTH = table.getColumnModel().getColumn(0).getWidth() - 1;
int HEIGHT = table.getRowHeight(0) - 1;
Class> cl = Class.forName("org.jdmp.gui.matrix.MatrixRenderer");
DefaultTableCellRenderer mr = (DefaultTableCellRenderer) cl.newInstance();
Component c = mr.getTableCellRendererComponent(table, getCoreObject().getLast(), false,
false, 0, 0);
BufferedImage bi = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB);
c.paint(bi.getGraphics());
return bi;
} catch (Exception e) {
return null;
}
}
public String getLabel() {
return variable.getLabel();
}
public void setLabel(Object label) {
variable.setLabel(label);
}
public Object getLabelObject() {
return variable.getLabelObject();
}
public String getDescription() {
return variable.getDescription();
}
public void setDescription(String description) {
variable.setDescription(description);
}
public String toString() {
return variable.toString();
}
public Variable getCoreObject() {
return variable;
}
public JFrame getFrame() {
if (frame == null) {
frame = new VariableFrame(this);
}
return frame;
}
public JPanel getPanel() {
if (panel == null) {
panel = new VariablePanel(this);
}
return panel;
}
}
Ads help maintain this website.