List of usage examples for javax.swing JTable setDropMode
public final void setDropMode(DropMode dropMode)
From source file:fi.hoski.remote.ui.Admin.java
private void editReservations(final EventType eventType) { final Event event = chooseEvent(eventType, "CHOOSE"); if (event != null) { final String eventTitle = TextUtil.getText(event.getEventType().name()) + " " + event.get(Event.EventDate); safeTitle = frame.getTitle();/* www .ja v a 2s .c o m*/ frame.setTitle(eventTitle); reservationList = dss.getReservations(event); selectedReservations = new ArrayList<Reservation>(); unSelectedReservations = new ArrayList<Reservation>(); if (Event.isInspection(eventType)) { for (Reservation reservation : reservationList) { Boolean inspected = (Boolean) reservation.get(Reservation.INSPECTED); if (inspected != null && inspected) { selectedReservations.add(reservation); } else { unSelectedReservations.add(reservation); } } } else { for (Reservation reservation : reservationList) { Long order = (Long) reservation.get(Reservation.ORDER); if (order != null && order != 0) { selectedReservations.add(reservation); } else { unSelectedReservations.add(reservation); } } } DataObjectModel baseModel = Reservation.getModel(eventType); DataObjectModel unorderedModel = null; DataObjectModel orderedModel = null; switch (eventType) { case LAUNCH: case LIFT: case HULL_INSPECTION: unorderedModel = baseModel.hide(Reservation.BOAT, Reservation.INSPECTED, Reservation.CREATOR); orderedModel = baseModel.hide(Reservation.BOAT, Reservation.INSPECTED, Reservation.CREATOR); break; case INSPECTION: unorderedModel = baseModel.hide(Reservation.BOAT, Reservation.INSPECTED, Reservation.CREATOR, Reservation.EMAIL, Reservation.MOBILEPHONE, Reservation.DOCK, Reservation.DOCKNUMBER, Reservation.INSPECTION_GASS, Reservation.INSPECTOR); orderedModel = baseModel.hide(Reservation.BOAT, Reservation.INSPECTED, Reservation.CREATOR, Reservation.EMAIL, Reservation.MOBILEPHONE, Reservation.DOCK, Reservation.DOCKNUMBER, Reservation.NOTES); break; } final DataObjectListTableModel<Reservation> unorderedTableModel = new DataObjectListTableModel<Reservation>( unorderedModel, unSelectedReservations); final JTable unorderedtable = new FitTable(unorderedTableModel); TableSelectionHandler tsh1 = new TableSelectionHandler(unorderedtable); unorderedtable.setDefaultRenderer(String.class, new StringTableCellRenderer()); unorderedtable.setDefaultRenderer(Text.class, new TextTableCellRenderer()); unorderedtable.addKeyListener(unorderedTableModel.getRemover(dss)); unorderedtable.setDragEnabled(true); unorderedtable.setDropMode(DropMode.INSERT_ROWS); TransferHandler unorderedTransferHandler = new DataObjectTransferHandler<Reservation>( unorderedTableModel); unorderedtable.setTransferHandler(unorderedTransferHandler); final DataObjectListTableModel<Reservation> orderedTableModel = new DataObjectListTableModel<Reservation>( orderedModel, selectedReservations); orderedTableModel.setEditable(Reservation.INSPECTION_CLASS, Reservation.INSPECTION_GASS, Reservation.BASICINSPECTION, Reservation.INSPECTOR); final JTable orderedtable = new FitTable(orderedTableModel); TableSelectionHandler tsh2 = new TableSelectionHandler(orderedtable); orderedtable.setDefaultRenderer(String.class, new StringTableCellRenderer()); orderedtable.setDefaultRenderer(Text.class, new TextTableCellRenderer()); orderedtable.addKeyListener(orderedTableModel.getRemover(dss)); orderedtable.setDragEnabled(true); orderedtable.setDropMode(DropMode.INSERT_ROWS); TransferHandler orderedTransferHandler = new DataObjectTransferHandler<Reservation>(orderedTableModel); orderedtable.setTransferHandler(orderedTransferHandler); if (Event.isInspection(eventType)) { unorderedtable.setAutoCreateRowSorter(true); orderedtable.setAutoCreateRowSorter(true); } leftPane = new JScrollPane(); leftPane.setViewport(new InfoViewport(TextUtil.getText(eventType.name() + "-leftPane"))); leftPane.setViewportView(unorderedtable); leftPane.setTransferHandler(unorderedTransferHandler); rightPane = new JScrollPane(); rightPane.setViewport(new InfoViewport(TextUtil.getText(eventType.name() + "-rightPane"))); rightPane.setViewportView(orderedtable); rightPane.setTransferHandler(orderedTransferHandler); splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftPane, rightPane); splitPane.setDividerLocation(0.5); menuReservation.setEnabled(false); safeContainer = frame.getContentPane(); JPanel contentPane = new JPanel(new BorderLayout()); contentPane.add(splitPane, BorderLayout.CENTER); JPanel buttonPanel = new JPanel(); buttonPanel.setLayout(new FlowLayout()); contentPane.add(buttonPanel, BorderLayout.SOUTH); JButton saveButton = new JButton(); TextUtil.populate(saveButton, "SAVE"); saveButton.setEnabled(!Event.isInspection(eventType)); ActionListener saveAction = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { saveReservations(); } }; saveButton.addActionListener(saveAction); buttonPanel.add(saveButton); switch (eventType) { case INSPECTION: { if (privileged) { JButton inspectButton = new JButton(); TextUtil.populate(inspectButton, "SET INSPECTED"); ActionListener inspectAction = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { TableCellEditor cellEditor = orderedtable.getCellEditor(); if (cellEditor != null) { cellEditor.stopCellEditing(); } try { setAsInspected(); } catch (SQLException | ClassNotFoundException ex) { ex.printStackTrace(); JOptionPane.showMessageDialog(null, ex.getMessage()); } } }; inspectButton.addActionListener(inspectAction); buttonPanel.add(inspectButton); } JButton addBoat = new JButton(); TextUtil.populate(addBoat, "ADD BOAT"); ActionListener addBoatAction = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { Reservation reservation = reservate(eventType, event); if (reservation != null) { reservationList.add(reservation); unSelectedReservations.add(reservation); unorderedTableModel.fireTableDataChanged(); } } }; addBoat.addActionListener(addBoatAction); buttonPanel.add(addBoat); JButton printTypeButton = new JButton(); TextUtil.populate(printTypeButton, "PRINT"); ActionListener printTypeAction = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { try { printNameBoatTypeOrder(eventTitle); } catch (PrinterException ex) { ex.printStackTrace(); JOptionPane.showMessageDialog(null, ex.getMessage()); } } }; printTypeButton.addActionListener(printTypeAction); buttonPanel.add(printTypeButton); JButton printDockButton = new JButton(); TextUtil.populate(printDockButton, "PRINT DOCK ORDER"); ActionListener printDockAction = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { try { printDockOrder(eventTitle); } catch (PrinterException ex) { ex.printStackTrace(); JOptionPane.showMessageDialog(null, ex.getMessage()); } } }; printDockButton.addActionListener(printDockAction); buttonPanel.add(printDockButton); } break; case HULL_INSPECTION: { JButton print = new JButton(); TextUtil.populate(print, "PRINT"); ActionListener printAction = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { try { printAlphaOrder(eventTitle); } catch (PrinterException ex) { ex.printStackTrace(); JOptionPane.showMessageDialog(null, ex.getMessage()); } } }; print.addActionListener(printAction); buttonPanel.add(print); } break; case LAUNCH: case LIFT: { JButton addBoat = new JButton(); TextUtil.populate(addBoat, "ADD BOAT"); ActionListener addBoatAction = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { Reservation reservation = reservate(eventType, event); if (reservation != null) { reservationList.add(reservation); unSelectedReservations.add(reservation); unorderedTableModel.fireTableDataChanged(); } } }; addBoat.addActionListener(addBoatAction); buttonPanel.add(addBoat); JButton printBrief = new JButton(); TextUtil.populate(printBrief, "BRIEF PRINT"); ActionListener printBriefAction = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { try { printOrderBrief(eventTitle); } catch (PrinterException ex) { ex.printStackTrace(); JOptionPane.showMessageDialog(null, ex.getMessage()); } } }; printBrief.addActionListener(printBriefAction); buttonPanel.add(printBrief); JButton print = new JButton(); TextUtil.populate(print, "PRINT"); ActionListener printAction = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { try { if (eventType == EventType.LAUNCH) { printLaunchOrder(eventTitle); } else { printLiftOrder(eventTitle); } } catch (PrinterException ex) { ex.printStackTrace(); JOptionPane.showMessageDialog(null, ex.getMessage()); } } }; print.addActionListener(printAction); buttonPanel.add(print); } break; } JButton cancelButton = new JButton(); TextUtil.populate(cancelButton, "CANCEL"); ActionListener cancelAction = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { cancel(); } }; cancelButton.addActionListener(cancelAction); buttonPanel.add(cancelButton); frame.setContentPane(contentPane); frame.pack(); frame.setVisible(true); KeyListener keyListener = new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { if (e.getKeyCode() == 10) { int selectedRow = unorderedtable.getSelectedRow(); if (selectedRow != -1) { RowSorter<? extends TableModel> rowSorter = unorderedtable.getRowSorter(); if (rowSorter != null) { selectedRow = rowSorter.convertRowIndexToModel(selectedRow); } Reservation reservation = unorderedTableModel.getObject(selectedRow); orderedTableModel.add(reservation); unorderedTableModel.remove(reservation); e.consume(); unorderedtable.changeSelection(selectedRow, 0, false, false); } } } }; unorderedtable.addKeyListener(keyListener); unorderedtable.requestFocusInWindow(); } }