Search in sources :

Example 36 with Config

use of org.knime.core.node.config.Config in project knime-core by knime.

the class BarDataModel method loadElements.

/**
 * {@inheritDoc}
 */
@Override
protected Collection<BarElementDataModel> loadElements(final ConfigRO config, final ExecutionMonitor exec) throws CanceledExecutionException, InvalidSettingsException {
    final int counter = config.getInt(CFG_ELEMENT_COUNT);
    final Collection<BarElementDataModel> elements = new ArrayList<BarElementDataModel>(counter);
    for (int i = 0; i < counter; i++) {
        final Config binConf = config.getConfig(CFG_BAR_ELEMENT + i);
        elements.add(BarElementDataModel.loadFromFile(binConf, exec));
    }
    exec.checkCanceled();
    return elements;
}
Also used : Config(org.knime.core.node.config.Config) ArrayList(java.util.ArrayList)

Example 37 with Config

use of org.knime.core.node.config.Config in project knime-core by knime.

the class FixedHistogramDataModel method save2File.

/**
 * @param directory the directory to write to
 * @param exec the {@link ExecutionMonitor} to provide progress messages
 * @throws IOException if a file exception occurs
 * @throws CanceledExecutionException if the operation is canceled
 */
public void save2File(final File directory, final ExecutionMonitor exec) throws IOException, CanceledExecutionException {
    if (exec != null) {
        exec.setProgress(0.0, "Start saving histogram data model to file");
    }
    final File dataFile = new File(directory, CFG_DATA_FILE);
    final FileOutputStream os = new FileOutputStream(dataFile);
    final GZIPOutputStream dataOS = new GZIPOutputStream(os);
    final Config config = new NodeSettings(CFG_DATA);
    final ConfigWO xConf = config.addConfig(CFG_X_COL_SPEC);
    m_xColSpec.save(xConf);
    if (exec != null) {
        exec.setProgress(0.1, "Binning column specification saved");
        exec.setMessage("Start saving aggregation columns...");
    }
    config.addBoolean(CFG_NOMINAL, m_binNominal);
    config.addString(CFG_AGGR_METHOD, m_aggrMethod.getActionCommand());
    final Config aggrConf = config.addConfig(CFG_AGGR_COLS);
    aggrConf.addInt(CFG_AGGR_COL_COUNTER, m_aggrColumns.size());
    int idx = 0;
    for (final ColorColumn col : m_aggrColumns) {
        final ConfigWO aggrColConf = aggrConf.addConfig(CFG_COLOR_COL + idx++);
        col.save2File(aggrColConf, exec);
    }
    if (exec != null) {
        exec.setProgress(0.3, "Start saving bins...");
    }
    final ConfigWO binsConf = config.addConfig(CFG_BINS);
    binsConf.addInt(CFG_BIN_COUNTER, m_bins.size());
    idx = 0;
    for (final BinDataModel bin : m_bins) {
        final ConfigWO binConf = binsConf.addConfig(CFG_BIN + idx++);
        bin.save2File(binConf, exec);
    }
    final ConfigWO missingBin = binsConf.addConfig(CFG_MISSING_BIN);
    m_missingValueBin.save2File(missingBin, exec);
    if (m_invalidValueBin != null) {
        final ConfigWO invalidBin = binsConf.addConfig(CFG_INVALID_BIN);
        m_invalidValueBin.save2File(invalidBin, exec);
    }
    if (exec != null) {
        exec.setProgress(0.8, "Start saving element colors...");
    }
    final List<Color> rowColors = getRowColors();
    final ConfigWO colorColsConf = config.addConfig(CFG_COLOR_COLS);
    colorColsConf.addInt(CFG_ROW_COLOR_COUNTER, rowColors.size());
    idx = 0;
    for (final Color color : rowColors) {
        colorColsConf.addInt(CFG_ROW_COLOR + idx++, color.getRGB());
    }
    config.saveToXML(dataOS);
    dataOS.flush();
    dataOS.close();
    os.flush();
    os.close();
    if (exec != null) {
        exec.setProgress(1.0, "Histogram data model saved");
    }
}
Also used : NodeSettings(org.knime.core.node.NodeSettings) GZIPOutputStream(java.util.zip.GZIPOutputStream) Config(org.knime.core.node.config.Config) FileOutputStream(java.io.FileOutputStream) ColorColumn(org.knime.base.node.viz.histogram.util.ColorColumn) Color(java.awt.Color) ConfigWO(org.knime.core.node.config.ConfigWO) File(java.io.File)

Example 38 with Config

use of org.knime.core.node.config.Config in project knime-core by knime.

the class FixedPieDataModel method loadFromFile.

/**
 * @param directory the directory to write to
 * @param exec the {@link ExecutionMonitor} to provide progress messages
 * @return the data model
 * wasn't valid
 * @throws IOException if a file exception occurs
 * @throws CanceledExecutionException if the operation was canceled
 * @throws InvalidSettingsException if the file is invalid
 */
@SuppressWarnings("unchecked")
public static FixedPieDataModel loadFromFile(final File directory, final ExecutionMonitor exec) throws IOException, CanceledExecutionException, InvalidSettingsException {
    if (exec != null) {
        exec.setProgress(0.0, "Start reading data from file");
    }
    final File settingsFile = new File(directory, CFG_DATA_FILE);
    final FileInputStream is = new FileInputStream(settingsFile);
    final GZIPInputStream inData = new GZIPInputStream(is);
    final ConfigRO config = NodeSettings.loadFromXML(inData);
    final String pieCol = config.getString(CFG_PIE_COL);
    final boolean numericPieCol = config.getBoolean(CFG_NUMERIC_PIE_COL);
    final String aggrCol = config.getString(CFG_AGGR_COL);
    final boolean supportHiliting = config.getBoolean(CFG_HILITING);
    final boolean detailsAvailable = config.getBoolean(CFG_DETAILS);
    if (exec != null) {
        exec.setProgress(0.3, "Loading sections...");
        exec.checkCanceled();
    }
    final Config sectionsConf = config.getConfig(CFG_SECTIONS);
    final int counter = sectionsConf.getInt(CFG_SECTION_COUNT);
    final List<PieSectionDataModel> sections = new ArrayList<PieSectionDataModel>(counter);
    for (int i = 0; i < counter; i++) {
        final Config sectionConf = sectionsConf.getConfig(CFG_SECTION + i);
        sections.add(PieSectionDataModel.loadFromFile(sectionConf, exec));
    }
    if (exec != null) {
        exec.setProgress(0.9, "Loading missing section...");
        exec.checkCanceled();
    }
    final Config missingConf = sectionsConf.getConfig(CFG_MISSING_SECTION);
    final PieSectionDataModel missingSection = PieSectionDataModel.loadFromFile(missingConf, exec);
    final boolean isColorColumn;
    if (config.containsKey(CFG_IS_COLOR_COLUMN)) {
        isColorColumn = config.getBoolean(CFG_IS_COLOR_COLUMN);
    } else {
        isColorColumn = false;
        // reset the color of all elements
        for (final PieSectionDataModel section : sections) {
            section.setColor(Color.BLACK);
        }
    }
    if (exec != null) {
        exec.setProgress(1.0, "Pie data model loaded ");
    }
    // close the stream
    inData.close();
    is.close();
    return new FixedPieDataModel(pieCol, numericPieCol, aggrCol, sections, missingSection, supportHiliting, detailsAvailable, isColorColumn);
}
Also used : GZIPInputStream(java.util.zip.GZIPInputStream) PieSectionDataModel(org.knime.base.node.viz.pie.datamodel.PieSectionDataModel) Config(org.knime.core.node.config.Config) ArrayList(java.util.ArrayList) ConfigRO(org.knime.core.node.config.ConfigRO) File(java.io.File) FileInputStream(java.io.FileInputStream)

Example 39 with Config

use of org.knime.core.node.config.Config in project knime-core by knime.

the class InteractivePieDataModel method save2File.

/**
 * @param dataDir the data directory to write to
 * @param exec the {@link ExecutionMonitor}
 * @throws IOException if the output file could not be created
 * @throws CanceledExecutionException if the saving was canceled
 */
public void save2File(final File dataDir, final ExecutionMonitor exec) throws IOException, CanceledExecutionException {
    final File settingFile = new File(dataDir, CFG_SETTING_FILE);
    final FileOutputStream os = new FileOutputStream(settingFile);
    final GZIPOutputStream settingOS = new GZIPOutputStream(os);
    final Config config = new NodeSettings(CFG_SETTING);
    config.addBoolean(CFG_HILITING, supportsHiliting());
    config.addBoolean(CFG_DETAILS, detailsAvailable());
    config.saveToXML(settingOS);
    exec.checkCanceled();
    final File dataFile = new File(dataDir, CFG_DATA_FILE);
    DataContainer.writeToZip(m_data, dataFile, exec);
}
Also used : NodeSettings(org.knime.core.node.NodeSettings) GZIPOutputStream(java.util.zip.GZIPOutputStream) Config(org.knime.core.node.config.Config) FileOutputStream(java.io.FileOutputStream) File(java.io.File)

Example 40 with Config

use of org.knime.core.node.config.Config in project knime-core by knime.

the class BoxPlotNodeModel method saveInternals.

/**
 * {@inheritDoc}
 */
@Override
protected void saveInternals(final File nodeInternDir, final ExecutionMonitor exec) throws IOException, CanceledExecutionException {
    try {
        NodeSettings settings = new NodeSettings(FILE_NAME);
        settings.addInt(CFG_NR_COLS, m_statistics.size());
        int i = 0;
        for (DataColumnSpec spec : m_statistics.keySet()) {
            NodeSettings colSetting = (NodeSettings) settings.addConfig(CFG_COL + i++);
            spec.save(colSetting);
        }
        for (Map.Entry<DataColumnSpec, double[]> entry : m_statistics.entrySet()) {
            String cfgName = entry.getKey().getName();
            settings.addDoubleArray(CFG_STATS + cfgName, entry.getValue());
            // mild outliers
            Map<Double, Set<RowKey>> mildOutliers = m_mildOutliers.get(cfgName);
            double[] mild = new double[mildOutliers.size()];
            Config mildKeysSubConfig = settings.addConfig(CFG_MILD + CFG_ROW + cfgName);
            int j = 0;
            for (Map.Entry<Double, Set<RowKey>> mildEntry : mildOutliers.entrySet()) {
                mild[j] = mildEntry.getKey();
                // save method -> savely store string from now on
                String[] keys = new String[mildEntry.getValue().size()];
                int rk = 0;
                for (RowKey key : mildEntry.getValue()) {
                    keys[rk] = key.getString();
                    rk++;
                }
                mildKeysSubConfig.addStringArray(CFG_MILD + CFG_ROW + cfgName + j, keys);
                j++;
            }
            settings.addDoubleArray(CFG_MILD + cfgName, mild);
            // settings.addDataCellArray(CFG_MILD + CFG_ROW + cfgName, mildKeys);
            Map<Double, Set<RowKey>> extremeOutliers = m_extremeOutliers.get(cfgName);
            double[] extreme = new double[extremeOutliers.size()];
            int ext = 0;
            Config extKeysSubConfig = settings.addConfig(CFG_EXTREME + CFG_ROW + cfgName);
            for (Map.Entry<Double, Set<RowKey>> extrEntry : extremeOutliers.entrySet()) {
                extreme[ext] = extrEntry.getKey();
                // save method -> save store strings from now on
                String[] keys = new String[extrEntry.getValue().size()];
                int rk = 0;
                for (RowKey key : extrEntry.getValue()) {
                    keys[rk] = key.getString();
                    rk++;
                }
                extKeysSubConfig.addStringArray(CFG_EXTREME + CFG_ROW + cfgName + ext, keys);
                ext++;
            }
            settings.addDoubleArray(CFG_EXTREME + cfgName, extreme);
        // settings.addDataCellArray(CFG_EXTREME + CFG_ROW + cfgName,
        // extremeKeys);
        }
        File f = new File(nodeInternDir, FILE_NAME);
        FileOutputStream fos = new FileOutputStream(f);
        settings.saveToXML(fos);
        File dataFile = new File(nodeInternDir, ARRAY_FILE);
        DataContainer.writeToZip(m_array, dataFile, exec);
    } catch (IOException e) {
        LOGGER.warn(e);
    }
}
Also used : HashSet(java.util.HashSet) Set(java.util.Set) RowKey(org.knime.core.data.RowKey) Config(org.knime.core.node.config.Config) IOException(java.io.IOException) NodeSettings(org.knime.core.node.NodeSettings) DataColumnSpec(org.knime.core.data.DataColumnSpec) FileOutputStream(java.io.FileOutputStream) LinkedHashMap(java.util.LinkedHashMap) Map(java.util.Map) File(java.io.File)

Aggregations

Config (org.knime.core.node.config.Config)84 InvalidSettingsException (org.knime.core.node.InvalidSettingsException)25 Color (java.awt.Color)10 File (java.io.File)10 FileOutputStream (java.io.FileOutputStream)8 NodeSettings (org.knime.core.node.NodeSettings)8 ArrayList (java.util.ArrayList)7 DataColumnSpec (org.knime.core.data.DataColumnSpec)7 ConfigRO (org.knime.core.node.config.ConfigRO)7 HashMap (java.util.HashMap)6 GZIPOutputStream (java.util.zip.GZIPOutputStream)6 LinkedHashMap (java.util.LinkedHashMap)5 DataColumnSpecCreator (org.knime.core.data.DataColumnSpecCreator)5 DataTableSpec (org.knime.core.data.DataTableSpec)5 SimpleStreamableOperatorInternals (org.knime.core.node.streamable.simple.SimpleStreamableOperatorInternals)5 FileInputStream (java.io.FileInputStream)4 IOException (java.io.IOException)4 HashSet (java.util.HashSet)4 GZIPInputStream (java.util.zip.GZIPInputStream)4 DataCell (org.knime.core.data.DataCell)4