package net.codjo.dataprocess.gui.util.std;
import net.codjo.gui.toolkit.util.ErrorDialog;
import net.codjo.mad.gui.framework.AbstractGuiAction;
import net.codjo.mad.gui.framework.GuiContext;
import net.codjo.mad.gui.request.RequestTable;
import java.awt.event.ActionEvent;
import org.apache.log4j.Logger;
/**
*
*/
public class ExportTextAction extends AbstractGuiAction {
protected static final Logger LOGGER = Logger.getLogger(ExportTextAction.class);
protected ExportTextBuilder builder;
public ExportTextAction(GuiContext ctxt, RequestTable... table) {
super(ctxt, "Export", "Exporter la page courante", "dataprocess.text");
createBuilder(table);
setEnabled(true);
}
private void createBuilder(RequestTable... tables) {
this.builder = new ExportTextBuilder();
this.builder.setGuiContext(getGuiContext());
builder.addAll(tables);
}
protected void setTableHeaderForBuilder(RequestTable... tables) {
for (RequestTable table : tables) {
builder.setHeaderData(table, ExportTextBuilder.createColumnHeader(table));
}
}
public void actionPerformed(ActionEvent evt) {
try {
displayWaitCursor();
setTableHeaderForBuilder(builder.getTableList().toArray(new RequestTable[builder.getTableList()
.size()]));
builder.generate(exportAllPages());
}
catch (Exception ex) {
LOGGER.error("Erreur d'export des donn�es", ex);
ErrorDialog.show(null, "Erreur d'export des donn�es", ex);
}
finally {
displayDefaultCursor();
}
}
protected boolean exportAllPages() {
return false;
}
@Override
public void setEnabled(boolean enabled) {
boolean enableHandler = true;
for (RequestTable aTable : builder.getTableList()) {
if ((aTable != null)
&& (aTable.getPreference() != null)
&& (aTable.getPreference().getSelectAll() != null)
&& !getGuiContext().getUser().isAllowedTo(aTable.getPreference().getSelectAll().getId())) {
enableHandler = false;
break;
}
}
super.setEnabled(enabled && enableHandler);
}
}