从表格单元格按钮打开一个对话框

时间:2012-10-17 21:16:30

标签: java dialog swt tableviewer

我需要允许我的用户在my表中编辑文件名值。所以在我的tableviewer中,我添加了代码来创建和显示我上一栏中的编辑按钮。我有这个工作。

当他们点击编辑按钮时,我想要一个对话框,在文本框中打开文件名,并带有保存和取消按钮。

所以我创建了FileNameDialog类。

我的问题是:我在哪里创建对话框?

  • 我是否在基本对话框中创建方法并从tableviewer
  • 调用该方法


class SelectionListener implements Listener {
    TableItem item;
    Button editButton;
    Object element;

    public SelectionListener(TableItem item, Button deleteButton, Object element) {
        this.item = item;
        this.editButton = deleteButton;
        this.element = element;
    }

    public void handleEvent(Event event) {
        AplotPDFDataModel.FileNameData selected = (( AplotPDFDataModel.FileNameData)element);
        int index = AplotPDFDataModel.getInstance().getIndexOf(selected);
        pdfDialog.showEditFileNameDialog();  <<++++++++HERE

        Table table = getTable();
        table.getColumn(5).pack();
        table.getColumn(5).setWidth(100);
    }
} // End SelectionListener Class
  • 我只是在tableviewer中创建一个方法并在那里创建对话框吗?


public void showEditFileNameDialog() {
    editFileNameDialog = new EditFileNameDialog(getShell());
    editFileNameDialog.create();
    editFileNameDialog.getShell().setSize(300, 200);
    editFileNameDialog.open();  
}

从tableviewer中的按钮单击打开对话框的最佳步骤是什么?

1 个答案:

答案 0 :(得分:2)

通常,您只需在Dialog的{​​{1}}方法中创建并显示handleEvent即可。

要获得Listener,您可以将Shell移至Dialog以下任何一项:

new EditFileNameDialog(getTable().getShell());

new EditFileNameDialog(new Shell());