package org.marketcetera.photon.actions;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.widgets.TableItem;
import org.marketcetera.photon.Messages;
import org.marketcetera.photon.views.fixmessagedetail.dialogs.executionreport.AddExecutionReportDialog;
import org.marketcetera.photon.views.fixmessagedetail.dialogs.executionreport.data.ExecutionReportField;
public class RemoveExecutionFieldAction extends Action
{
/** Parent dialog */
private final AddExecutionReportDialog fParentDialog;
/** Execution report table */
private final TableViewer fTableViewer;
public RemoveExecutionFieldAction(TableViewer tableViewer, AddExecutionReportDialog parentDialog)
{
fTableViewer = tableViewer;
fParentDialog = parentDialog;
}
@Override
public boolean isEnabled()
{
if(fTableViewer.getTable().getSelectionCount() == 0)
return false;
return true;
}
@Override
public String getText()
{
return Messages.ADD_EXECUTION_REPORT_DIALOG_TABLE_CONTEXT_REMOVE.getText();
}
@Override
public void run()
{
TableItem[] items = fTableViewer.getTable().getSelection();
List<ExecutionReportField> executionReportPairs = new ArrayList<ExecutionReportField>();
for(TableItem item: items)
{
executionReportPairs.add((ExecutionReportField) item.getData());
}
// Update model
fParentDialog.removeFromExecutionReport((ExecutionReportField[]) executionReportPairs.toArray(new ExecutionReportField[items.length]));
}
}