/*
* #%L
* gitools-ui-app
* %%
* Copyright (C) 2013 Universitat Pompeu Fabra - Biomedical Genomics group
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public
* License along with this program. If not, see
* <http://www.gnu.org/licenses/gpl-3.0.html>.
* #L%
*/
package org.gitools.ui.app.wizard;
import org.gitools.api.persistence.FileFormat;
import org.gitools.heatmap.Heatmap;
import org.gitools.matrix.FileFormats;
import org.gitools.ui.core.pages.common.BasicSaveFilePage;
import org.gitools.ui.core.pages.common.ExportHeatmapLabelsPage;
import org.gitools.ui.core.pages.common.PatternSourcePage;
import org.gitools.ui.core.pages.common.SaveFilePage;
import org.gitools.ui.platform.settings.Settings;
import org.gitools.ui.platform.wizard.AbstractWizard;
import org.gitools.ui.platform.wizard.IWizardPage;
public class ExportHeatmapLabelsWizard extends AbstractWizard {
private final FileFormat[] supportedFormats = new FileFormat[]{FileFormats.TEXT};
private final Heatmap hm;
private ExportHeatmapLabelsPage sourcePage;
private PatternSourcePage patPage;
private BasicSaveFilePage savePage;
public ExportHeatmapLabelsWizard(Heatmap hm) {
this.hm = hm;
setTitle("Export labels ...");
}
@Override
public void addPages() {
sourcePage = new ExportHeatmapLabelsPage();
addPage(sourcePage);
patPage = new PatternSourcePage(true);
patPage.setAnnSeparationModel(new String[]{"\t", ",", ";"});
addPage(patPage);
savePage = new BasicSaveFilePage();
savePage.setTitle("Select destination file");
savePage.setFolder(Settings.get().getLastExportPath());
savePage.setFormats(supportedFormats);
addPage(savePage);
}
@Override
public void performFinish() {
Settings.get().setLastExportPath(savePage.getFolder());
Settings.get().save();
}
@Override
public void pageLeft(IWizardPage page) {
if (page == sourcePage) {
switch (sourcePage.getWhichLabels()) {
case VISIBLE_ROWS:
case HIDDEN_ROWS:
patPage.setHeatmapDimension(hm.getRows());
break;
case VISIBLE_COLUMNS:
case HIDDEN_COLUMNS:
patPage.setHeatmapDimension(hm.getColumns());
break;
}
}
}
public ExportHeatmapLabelsPage.WhichLabels getWhichLabels() {
return sourcePage.getWhichLabels();
}
public String getPattern() {
return patPage.getPattern();
}
public SaveFilePage getSavePage() {
return savePage;
}
}