package dr.app.tracer.traces;
import dr.app.gui.util.LongTask;
import dr.app.tracer.application.TracerFrame;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
/**
* @author Andrew Rambaut
* @author Alexei Drummond
* @author Walter Xie
*/
public class FilterDialog extends JDialog {
private TracerFrame frame;
Object[] options = {"Apply Filter Changes", "Remove All Filters", "Cancel"};
public FilterDialog(TracerFrame frame) {
this.frame = frame;
}
public String showDialog(FilterListPanel filterListPanel, String previousMessage) {
String message = "";
JOptionPane optionPane = new JOptionPane(filterListPanel,
JOptionPane.PLAIN_MESSAGE,
JOptionPane.YES_NO_CANCEL_OPTION,
null,
options,
options[0]);
optionPane.setBorder(new EmptyBorder(12, 12, 12, 12));
final JDialog dialog = optionPane.createDialog(frame, "Filter Editor");
// dialog.setModal(true);
// dialog.setResizable(true);
dialog.pack();
dialog.setVisible(true);
Object result = optionPane.getValue();
if (result == null) return previousMessage;
if (result.equals(options[0])) {
message = "";
filterListPanel.applyFilterChanges();
frame.statisticTableSelectionChanged();
// if (filterPanel.containsNullValue()) {
// JOptionPane.showMessageDialog(frame, "The selected value for filter is invalid \ror no value is selected !",
// "Invalid Filter Input",
// JOptionPane.ERROR_MESSAGE);
// return previousMessage;
// }
// for (int i = 0; i < filteredTraceListGroup.size(); i++) {
// FilteredTraceList fTL = (FilteredTraceList) filteredTraceListGroup.get(i);
// f = fTL.getFilter(traceIndex);
//
// if (f == null) {
// f = new Filter(filterPanel.getSelectedValues());
// } else {
// f.setIn(filterPanel.getSelectedValues());
// }
//
// fTL.setFilter(traceIndex, f);
// }
// message += f.getStatusMessage(); // todo
//
// for (int i = 0; i < filteredTraceListGroup.size(); i++) {
// if (i == 0) message += " in file(s) ";
// if (i > 0) message += " and ";
// message += "\'" + filteredTraceListGroup.get(i).getName() + "\'";
// }
} else if (result.equals(options[1])) {
filterListPanel.removeAllFilters();
frame.statisticTableSelectionChanged();
message = "";
} else if (result.equals(options[2])) {
return previousMessage;
}
return message;
}
class AnalyseFilterTask extends LongTask {
public Object doWork() throws Exception {
return null; //To change body of implemented methods use File | Settings | File Templates.
}
public int getLengthOfTask() {
return 0; //To change body of implemented methods use File | Settings | File Templates.
}
public int getCurrent() {
return 0; //To change body of implemented methods use File | Settings | File Templates.
}
public String getMessage() {
return null; //To change body of implemented methods use File | Settings | File Templates.
}
}
}