package com.vistatec.ocelot.tm.gui.match; import java.awt.Color; import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.EventObject; import javax.swing.AbstractAction; import javax.swing.AbstractCellEditor; import javax.swing.DefaultCellEditor; import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.KeyStroke; import javax.swing.table.TableCellEditor; import com.vistatec.ocelot.segment.model.OcelotSegment; import com.vistatec.ocelot.segment.view.SegmentTextCell; import com.vistatec.ocelot.segment.view.SegmentView.TextPopupMenuListener; import com.vistatec.ocelot.tm.okapi.PensieveTmMatch.PensieveSegmentVariant; public class ReadOnlyCellEditor extends AbstractCellEditor implements TableCellEditor { /** * */ private static final long serialVersionUID = -591391978033697647L; private SegmentTextCell editorComp; @Override public Object getCellEditorValue() { return editorComp.getVariant(); } @Override public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { // Component comp = super.getTableCellEditorComponent(table, value, isSelected, row, column); SegmentTextCell renderedComp = (SegmentTextCell)table.getCellRenderer(row, column).getTableCellRendererComponent(table, value, isSelected, true, row, column); editorComp = SegmentTextCell.createCell(); editorComp.setVariant(row, renderedComp.getVariant().createCopy(), false); editorComp.setBackground(table.getSelectionBackground()); editorComp.setSelectionColor(Color.BLUE); editorComp.setSelectedTextColor(Color.WHITE); editorComp.getCaret().setVisible(true); editorComp.setEditable(false); // editorComp.addMouseListener(new MouseAdapter() { // // @Override // public void mouseExited(MouseEvent e) { // fireEditingStopped(); // } // }); // Component component = super.getta // OcelotSegment seg = segmentTableModel.getSegment(sort.convertRowIndexToModel(row)); // editorComponent = new SegmentTextCell(seg.getSource().createCopy(), false); // editorComponent.setBackground(table.getSelectionBackground()); // editorComponent.setSelectionColor(Color.BLUE); // editorComponent.setSelectedTextColor(Color.WHITE); // editorComponent.setEditable(false); // editorComponent.getCaret().setVisible(true); // editorComponent.addMouseListener(new TextPopupMenuListener()); // editorComponent.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "finish"); // editorComponent.getActionMap().put("finish", new AbstractAction() { // private static final long serialVersionUID = 1L; // // @Override // public void actionPerformed(ActionEvent e) { // fireEditingStopped(); // } // }); return editorComp; } @Override public boolean isCellEditable(EventObject anEvent) { // if (anEvent instanceof MouseEvent) { // // Override normal behavior and only allow double-click to edit the // // cell // return ((MouseEvent)anEvent).getClickCount() >= 2; // } // if (anEvent instanceof ActionEvent) { // return true; // } return true; } }