Skip to content

Commit

Permalink
admin console. delete channels.
Browse files Browse the repository at this point in the history
  • Loading branch information
chenson42 committed Mar 22, 2008
1 parent 6d0dc9e commit e2b8cdd
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 4 deletions.
Expand Up @@ -57,7 +57,7 @@ public AppFrame() throws Exception {
stackPanel.setBorder(new EmptyBorder(15, 15, 15, 15));
InfoScreen infoScreen = new InfoScreen();
addScreenToPanel(new BlankScreen());
addScreenToPanel(new ChannelEditScreen());
addScreenToPanel(new ChannelEditScreen(this));
addScreenToPanel(infoScreen);
JSplitPane splitPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftPane, stackPanel);
splitPanel.setOneTouchExpandable(true);
Expand Down
Expand Up @@ -21,8 +21,14 @@

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.AbstractAction;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
Expand All @@ -38,7 +44,6 @@

import org.jumpmind.symmetric.admin.table.ChannelTableModel;
import org.jumpmind.symmetric.admin.table.ModelObjectTableModel;
import org.jumpmind.symmetric.admin.table.ValidationException;
import org.jumpmind.symmetric.model.Channel;

public class ChannelEditScreen extends AbstractScreen {
Expand All @@ -51,10 +56,14 @@ public class ChannelEditScreen extends AbstractScreen {

protected ModelObjectTableModel<Channel> tableModel;

private JPopupMenu rowPopup;

int selectedRow = 0;

public ChannelEditScreen() {
IAppController appController;

public ChannelEditScreen(IAppController controller) {
this.appController = controller;
tableModel = new ChannelTableModel();
tableModel.addTableModelListener(new ChannelEditScreen.InteractiveTableModelListener());
table = new JTable();
Expand All @@ -64,6 +73,24 @@ public ChannelEditScreen() {
tableModel.addEmptyRow();
}

rowPopup = new JPopupMenu();
// TODO resource bundle
rowPopup.add(new JMenuItem(new AbstractAction("Delete") {
private static final long serialVersionUID = -1L;

public void actionPerformed(ActionEvent e) {
try {
tableModel.delete();
table.revalidate();
table.repaint();
} catch (Exception e1) {
appController.showError(e1.getMessage(), e1);
}
}
}));

table.addMouseListener(new PopupListener());

scroller = new javax.swing.JScrollPane(table);
table.setPreferredScrollableViewportSize(new java.awt.Dimension(500, 300));
TableColumn hidden = table.getColumnModel().getColumn(tableModel.getColumnCount() - 1);
Expand All @@ -83,8 +110,9 @@ public void valueChanged(ListSelectionEvent e) {
selectedRow = table.getSelectedRow();
try {
tableModel.save();
} catch (ValidationException e1) {
} catch (Exception e1) {
table.getSelectionModel().setSelectionInterval(oldRow, oldRow);
appController.showError(e1.getMessage(), e1);
}
if (!ChannelEditScreen.this.tableModel.hasEmptyRow()) {
ChannelEditScreen.this.tableModel.addEmptyRow();
Expand Down Expand Up @@ -177,4 +205,21 @@ public void tableChanged(TableModelEvent evt) {
}
}

class PopupListener extends MouseAdapter {

public void mousePressed(MouseEvent e) {
maybeShowPopup(e);
}

public void mouseReleased(MouseEvent e) {
maybeShowPopup(e);
}

private void maybeShowPopup(MouseEvent e) {
if (e.isPopupTrigger()) {
rowPopup.show(e.getComponent(), e.getX(), e.getY());
}
}
}

}
Expand Up @@ -172,6 +172,14 @@ public void setup(SymmetricDatabase db) {
list.add(nodeChannel);
}
}

@Override
public void delete() throws ValidationException {
if (selectedRow < list.size()) {
database.delete(list.get(selectedRow));
list.remove(selectedRow);
}
}

@Override
public void save() throws ValidationException {
Expand Down
Expand Up @@ -64,6 +64,8 @@ public boolean isCellEditable(int row, int column) {
abstract public Class getColumnClass(int column);

abstract public void save() throws ValidationException;

abstract public void delete() throws ValidationException;

abstract public TableCellEditor getCellEditorForColumn(int column);

Expand Down

0 comments on commit e2b8cdd

Please sign in to comment.