Subversion Repositories Projects

Compare Revisions

Ignore whitespace Rev 1794 → Rev 1795

/dongfang_FC_rewrite_tool/src/dongfang/mk/ui/DebugColors.java
0,0 → 1,30
package dongfang.mk.ui;
 
import java.awt.Color;
 
import dongfang.mkt.MKGlobals;
 
public class DebugColors {
public static final Color[] debugColors = new Color[MKGlobals.NUM_DEBUG_CHANNELS];
static {
for (int i=0; i<debugColors.length; i++) {
int r = i % 3;
int g = i % 5;
int b = i % 7;
int offset = 100;
debugColors[i] = new Color(
offset + r * 10,
offset + g * 10,
offset + b * 10
);
}
}
public static Color[] getDebugColors() {
return debugColors;
}
public static Color getDebugColor(int index) {
return debugColors[index];
}
}
/dongfang_FC_rewrite_tool/src/dongfang/mk/ui/DebugItem.java
0,0 → 1,29
package dongfang.mk.ui;
 
import java.awt.Dimension;
 
import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
 
public class DebugItem extends JPanel {
private JLabel label = new JLabel("Fnyxxedness");
private JLabel value = new JLabel("12345");
public DebugItem() {
setLayout(new BoxLayout(this, BoxLayout.LINE_AXIS));
add(label);
add(value);
}
public static void main(String[] args) {
JFrame f = new JFrame();
DebugItem di = new DebugItem();
f.getContentPane().add(di);
f.pack();
f.setVisible(true);
}
}
/dongfang_FC_rewrite_tool/src/dongfang/mk/ui/DebugTable.java
0,0 → 1,172
package dongfang.mk.ui;
 
import java.awt.BorderLayout;
import java.awt.Component;
 
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableCellRenderer;
 
public class DebugTable extends JPanel {
private static final int NUMCHANNELS = 32;
private static final int NUMCOLSETS = 1;
private static final int NUMROWS = NUMCHANNELS / NUMCOLSETS;
private static final int NUMCOLS = NUMCOLSETS * 3;
private SelectionListener selectionListener;
 
private static final int LABELCOL=0;
private static final int VALUECOL=1;
private static final int SELECTCOL=2;
 
class DebugtableModel extends AbstractTableModel {
private String[] labels = new String[NUMCHANNELS];
private Integer[] values = new Integer[NUMCHANNELS];
private boolean[] selected = new boolean[NUMCHANNELS];
 
@Override
public Class<?> getColumnClass(int columnIndex) {
switch(columnIndex % 3) {
case LABELCOL: return String.class;
case VALUECOL: return Integer.class;
case SELECTCOL: return Boolean.class;
}
return null;
}
 
@Override
public String getColumnName(int column) {
switch(column % 3) {
case LABELCOL: return "Name";
case VALUECOL: return "Value";
case SELECTCOL: return "Show";
}
return null;
}
 
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return columnIndex % 3 == SELECTCOL;
}
 
@Override
public void setValueAt(Object value, int rowIndex, int columnIndex) {
if (columnIndex % 3 == SELECTCOL) {
int colnum = (columnIndex / 3);
setSelected(rowIndex + colnum * NUMROWS, (Boolean)value);
}
}
 
void setLabel(int index, String label) {
labels[index] = label;
int colnum = LABELCOL + (index / NUMROWS) * 3;
fireTableCellUpdated(index % NUMROWS, colnum);
}
 
void setValue(int index, int value) {
values[index] = value;
int colnum = VALUECOL + (index / NUMROWS) * 3;
fireTableCellUpdated(index % NUMROWS, colnum);
}
 
void setValues(int[] values) {
for (int i=0; i<values.length; i++) {
this.values[i] = values[i];
int colnum = VALUECOL + (i / NUMROWS) * 3;
fireTableCellUpdated(i % NUMROWS, colnum);
}
}
 
void setSelected(int index, boolean selected) {
this.selected[index] = selected;
notifySelectionListener(this.selected);
}
 
boolean isSelected(int index) {
return selected[index];
}
 
public int getColumnCount() {
return NUMCOLS;
}
 
public int getRowCount() {
return NUMROWS;
}
 
public Object getValueAt(int rowIndex, int columnIndex) {
int colnum = (columnIndex / 3);
switch(columnIndex % 3) {
case LABELCOL: return labels[rowIndex + colnum * NUMROWS];
case VALUECOL: return values[rowIndex + colnum * NUMROWS];
case SELECTCOL: return selected[rowIndex + colnum * NUMROWS];
}
return null;
}
}
private DebugtableModel model = new DebugtableModel();
private JTable table = new JTable() {
public Component prepareRenderer(TableCellRenderer renderer, int row, int column) {
Component c = super.prepareRenderer(renderer, row, column);
if (column % 3 == SELECTCOL)
c.setBackground(DebugColors.getDebugColor(row));
return c;
}
};
public DebugTable() {
table.setModel(model);
setLayout(new BorderLayout());
add(table.getTableHeader(), BorderLayout.PAGE_START);
add(table, BorderLayout.CENTER);
}
public void setLabel(int index, String label) {
this.model.setLabel(index, label);
}
 
public void setValue(int index, int value) {
this.model.setValue(index, value);
}
 
public void setValues(int[] values) {
this.model.setValues(values);
}
 
public void setSelected(int index, boolean value) {
this.model.setSelected(index, value);
}
 
public boolean isSelected(int index) {
return this.model.isSelected(index);
}
 
public void setSelectionListener(SelectionListener l) {
this.selectionListener = l;
}
private void notifySelectionListener(boolean[] selected) {
if (selectionListener != null)
selectionListener.notifySelected(selected);
}
public static void main(String[] args) {
JFrame f = new JFrame();
DebugTable t = new DebugTable();
for (int i=0; i<NUMCHANNELS; i++) {
t.setLabel(i, "label "+i);
t.setValue(i, (int)(Math.random() * 10000));
t.setSelected(i, false);
}
f.getContentPane().add(t);
f.pack();
f.setVisible(true);
}
}
/dongfang_FC_rewrite_tool/src/dongfang/mk/ui/SelectionListener.java
0,0 → 1,5
package dongfang.mk.ui;
 
public interface SelectionListener {
void notifySelected(boolean[] sel);
}