mirror of https://github.com/rusefi/RomRaider.git
Add Phidget InterfaceKit user defined convertor dialog.
This commit is contained in:
parent
517c908574
commit
f5c5d4c9f2
155
src/main/java/com/romraider/logger/external/phidget/interfacekit/plugin/IntfKitConvertorPanel.java
vendored
Normal file
155
src/main/java/com/romraider/logger/external/phidget/interfacekit/plugin/IntfKitConvertorPanel.java
vendored
Normal file
|
@ -0,0 +1,155 @@
|
|||
package com.romraider.logger.external.phidget.interfacekit.plugin;
|
||||
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.FlowLayout;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.awt.event.WindowAdapter;
|
||||
import java.awt.event.WindowEvent;
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JDialog;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JScrollPane;
|
||||
import javax.swing.JTable;
|
||||
import javax.swing.table.JTableHeader;
|
||||
import javax.swing.table.TableColumn;
|
||||
|
||||
import com.romraider.logger.ecu.EcuLogger;
|
||||
import com.romraider.logger.ecu.ui.swing.tools.tablemodels.renderers.CentreRenderer;
|
||||
|
||||
public class IntfKitConvertorPanel extends JDialog {
|
||||
private static final long serialVersionUID = -4785866140260703021L;
|
||||
private final int IK_WIDTH = 600;
|
||||
private final int IK_HEIGHT = 300;
|
||||
private JTable table;
|
||||
|
||||
public IntfKitConvertorPanel(
|
||||
EcuLogger logger, List<List<String>> ikData) {
|
||||
|
||||
super(logger, true);
|
||||
setTitle("Phidget InterfaceKit User Defined Convertors");
|
||||
setBounds(
|
||||
(logger.getWidth() > IK_WIDTH) ?
|
||||
logger.getX() + (logger.getWidth() - IK_WIDTH) / 2 : 0,
|
||||
(logger.getHeight() > IK_HEIGHT) ?
|
||||
logger.getY() + ((logger.getHeight() - IK_HEIGHT) / 2) : 0,
|
||||
IK_WIDTH,
|
||||
IK_HEIGHT);
|
||||
getContentPane().setLayout(new BorderLayout());
|
||||
final JScrollPane scrollPane = new JScrollPane();
|
||||
getContentPane().add(scrollPane, BorderLayout.CENTER);
|
||||
|
||||
final IntfKitTableModel model = new IntfKitTableModel();
|
||||
model.setIkRowData(ikData);
|
||||
table = new JTable(model) {
|
||||
private static final long serialVersionUID = -6967080466164619695L;
|
||||
public final String getToolTipText(MouseEvent e) {
|
||||
String tip = null;
|
||||
final int colIndex = columnAtPoint(e.getPoint());
|
||||
final int column = convertColumnIndexToModel(colIndex);
|
||||
switch (column) {
|
||||
case 0:
|
||||
tip = "Sensor module serial number and input number";
|
||||
break;
|
||||
case 1:
|
||||
tip = "Equation used to convert raw data to real value";
|
||||
break;
|
||||
case 2:
|
||||
tip = "Format of real value for display and logging";
|
||||
break;
|
||||
case 3:
|
||||
tip = "Units of measure of the real value";
|
||||
break;
|
||||
case 4:
|
||||
tip = "Minimum real value expected";
|
||||
break;
|
||||
case 5:
|
||||
tip = "Maximum real value expected";
|
||||
break;
|
||||
case 6:
|
||||
tip = "Tick mark step for Gauge Tab display, " +
|
||||
"typically (max-min)/10";
|
||||
break;
|
||||
default:
|
||||
tip = super.getToolTipText(e);
|
||||
}
|
||||
return tip;
|
||||
}
|
||||
};
|
||||
|
||||
setTableBehaviour(table);
|
||||
scrollPane.setViewportView(table);
|
||||
|
||||
final JPanel buttonPane = new JPanel();
|
||||
buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
|
||||
getContentPane().add(buttonPane, BorderLayout.SOUTH);
|
||||
|
||||
final JButton applyButton = new JButton("Apply");
|
||||
applyButton.setToolTipText("Apply current convertor settings then exit");
|
||||
applyButton.setMnemonic(KeyEvent.VK_A);
|
||||
applyButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public final void actionPerformed(ActionEvent actionEvent) {
|
||||
closeDialog();
|
||||
}
|
||||
});
|
||||
buttonPane.add(applyButton);
|
||||
getRootPane().setDefaultButton(applyButton);
|
||||
|
||||
final JButton cancelButton = new JButton("Cancel");
|
||||
cancelButton.setToolTipText("Cancel/exit without applying changes");
|
||||
cancelButton.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
table = null;
|
||||
closeDialog();
|
||||
}
|
||||
});
|
||||
buttonPane.add(cancelButton);
|
||||
}
|
||||
|
||||
public final void displayPanel() {
|
||||
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
|
||||
addWindowListener(new WindowAdapter() {
|
||||
public void windowClosing(WindowEvent we) {
|
||||
table = null;
|
||||
closeDialog();
|
||||
}
|
||||
});
|
||||
setVisible(true);
|
||||
}
|
||||
|
||||
public final JTable getTable() {
|
||||
return table;
|
||||
}
|
||||
|
||||
private final void setTableBehaviour(JTable table) {
|
||||
table.setBorder(null);
|
||||
table.setFillsViewportHeight(false);
|
||||
table.setColumnSelectionAllowed(false);
|
||||
table.setRowSelectionAllowed(false);
|
||||
|
||||
final JTableHeader th = table.getTableHeader();
|
||||
th.setReorderingAllowed(false);
|
||||
th.setDefaultRenderer(new CentreRenderer(table));
|
||||
|
||||
TableColumn column = null;
|
||||
for (int i = 0; i < table.getColumnCount(); i++) {
|
||||
column = table.getColumnModel().getColumn(i);
|
||||
if (i == 0) {
|
||||
column.setPreferredWidth(220);
|
||||
}
|
||||
else {
|
||||
column.setPreferredWidth(100);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private final void closeDialog() {
|
||||
setVisible(false);
|
||||
dispose();
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue