@Override public int getIndexOfChild(Object parent, Object child) { if (parent instanceof RepositoryManager) { if (onlyWriteableRepositories) { return getWritableRepositories(((RepositoryManager) parent)).indexOf(child); } return ((RepositoryManager) parent).getRepositories().indexOf(child); } else if (parent instanceof Folder) { Folder folder = (Folder) parent; try { if (child instanceof Folder) { return folder.getSubfolders().indexOf(child); } else if ((child instanceof Entry) && !onlyFolders) { return folder.getDataEntries().indexOf(child) + folder.getSubfolders().size(); } else { return -1; } } catch (RepositoryException e) { // LogService.getRoot().log(Level.WARNING, "Cannot get child index for "+folder.getName()+": // "+e, e); LogService.getRoot() .log( Level.WARNING, I18N.getMessage( LogService.getRoot().getResourceBundle(), "com.rapidminer.repository.gui.RepositoryTreeModel.getting_child_index_of_folder_error", folder.getName(), e), e); return -1; } } else { return -1; } }
private void updateResult() { try { String repositoryLocation = getRepositoryLocation(); resultLabel.setText(repositoryLocation); } catch (MalformedRepositoryLocationException e) { // LogService.getRoot().log(Level.WARNING, "Malformed location: " + e, e); LogService.getRoot() .log( Level.WARNING, I18N.getMessage( LogService.getRoot().getResourceBundle(), "com.rapidminer.repository.gui.RepositoryLocationChooser.malformed_location", e), e); } if ((currentEntry instanceof Folder) && !enforceValidRepositoryEntryName && locationField.getText().isEmpty()) { this.folderSelected = true; } if ((currentEntry instanceof Folder) && enforceValidRepositoryEntryName && locationFieldRepositoryEntry.getText().isEmpty()) { this.folderSelected = true; } else { this.folderSelected = false; } for (ChangeListener l : listeners) { l.stateChanged(new ChangeEvent(this)); } }
/** Returns true if the user entered a valid, non-empty repository location. */ public boolean hasSelection(boolean allowFolders) { if (!allowFolders && ((enforceValidRepositoryEntryName && locationFieldRepositoryEntry.getText().isEmpty()) || (!enforceValidRepositoryEntryName && locationField.getText().isEmpty()) || (enforceValidRepositoryEntryName && !RepositoryLocation.isNameValid(locationFieldRepositoryEntry.getText())))) { return false; } else { try { getRepositoryLocation(); return true; } catch (MalformedRepositoryLocationException e) { // LogService.getRoot().warning("Malformed repository location: " + e); LogService.getRoot() .log( Level.WARNING, I18N.getMessage( LogService.getRoot().getResourceBundle(), "com.rapidminer.repository.gui.RepositoryLocationChooser.malformed_repository_location", e), e); return false; } } }
/** * Generates all new attributes and updates the ExampleTable. Returns a list of Attributes for the * newly generated attributes. * * @param exampleTable the source example table * @param generatorList List of FeatureGenerators * @return A list of Attributes */ public static List<Attribute> generateAll( ExampleTable exampleTable, Collection<FeatureGenerator> generatorList) throws GenerationException { // LogService.getGlobal().log("Starting feature generation with " + generatorList.size() + " // generators.", LogService.STATUS); LogService.getRoot() .log( Level.FINE, "com.rapidminer.generator.FeatureGenerator.starting_feature_generation", generatorList.size()); Iterator<FeatureGenerator> gi = generatorList.iterator(); while (gi.hasNext()) gi.next().setExampleTable(exampleTable); // for performance reasons convert the list to an array FeatureGenerator[] generators = new FeatureGenerator[generatorList.size()]; generatorList.toArray(generators); List<Attribute> newAttributeList = newAttributes(generators, exampleTable); // add the attributes to the example table and ensure length of the // DataRows exampleTable.addAttributes(newAttributeList); // LogService.getGlobal().log("Generator list: " + generatorList, LogService.STATUS); LogService.getRoot() .log(Level.FINE, "com.rapidminer.generator.FeatureGenerator.generator_list", generatorList); // LogService.getGlobal().log("Input set has " + exampleTable.getAttributeCount() + " features, // " + exampleTable.size() + " examples.", LogService.STATUS); LogService.getRoot() .log( Level.FINE, "com.rapidminer.generator.FeatureGenerator.input_has_feature_count_and_example_count", new Object[] {exampleTable.getAttributeCount(), exampleTable.size()}); // generate the attribute values: DataRowReader reader = exampleTable.getDataRowReader(); while (reader.hasNext()) { DataRow dataRow = reader.next(); for (int j = 0; j < generators.length; j++) { generators[j].generate(dataRow); } } // LogService.getGlobal().log("Finished feature generation.", LogService.STATUS); LogService.getRoot() .log(Level.FINE, "com.rapidminer.generator.FeatureGenerator.finished_feature_generation"); // LogService.getGlobal().log("Generated set has " + exampleTable.getAttributeCount() + " // features, " + exampleTable.size() + " examples.", LogService.STATUS); LogService.getRoot() .log( Level.FINE, "com.rapidminer.generator.FeatureGenerator.generated_set_has_feature_count_and_example_count", new Object[] {exampleTable.getAttributeCount(), exampleTable.size()}); return newAttributeList; }
/** * Enqueues this task and waits for its completion. If you call this method, you probably want to * set the runInForeground flag in the constructor to true. * * <p>Be careful when using this method for {@link ProgressThread}s with dependencies, this call * might block for a long time. */ public void startAndWait() { // set flag indicating we are a busy waiting task - these are not started automatically by // #checkQueueForDependenciesAndExecuteUnblockedTasks() isWaiting = true; try { // no dependency -> start immediately if (dependencies.isEmpty()) { EXECUTOR.submit(makeWrapper()).get(); } else { synchronized (LOCK) { queuedThreads.add(this); } taskQueued(this); // because this method waits, we can't just queue and leave. Instead we check on a // regular basis and see if it can be executed now. do { boolean blocked = true; synchronized (LOCK) { blocked = isBlockedByDependencies(); } if (!blocked) { // no longer blocked? Execute and wait and afterwards leave loop synchronized (LOCK) { queuedThreads.remove(this); } EXECUTOR.submit(makeWrapper()).get(); break; } Thread.sleep(BUSY_WAITING_INTERVAL); } while (true); } } catch (InterruptedException e) { LogService.getRoot() .log( Level.SEVERE, I18N.getMessage( LogService.getRoot().getResourceBundle(), "com.rapidminer.gui.tools.ProgressThread.executing_error", name), e); } catch (ExecutionException e) { LogService.getRoot() .log( Level.SEVERE, I18N.getMessage( LogService.getRoot().getResourceBundle(), "com.rapidminer.gui.tools.ProgressThread.executing_error", name), e); } }
public void locateExpandedEntries() { for (String absoluteLocation : expandedNodes) { try { RepositoryLocation repositoryLocation = new RepositoryLocation(absoluteLocation); repositoryLocation.locateEntry(); } catch (MalformedRepositoryLocationException e) { LogService.getRoot().warning("Unable to expand the location:" + absoluteLocation); e.printStackTrace(); } catch (RepositoryException e) { LogService.getRoot().warning("Unable to expand the location:" + absoluteLocation); e.printStackTrace(); } } }
/** Returns a list of new Attributes that are generated by the given generators. */ private static List<Attribute> newAttributes( FeatureGenerator[] generators, ExampleTable exampleTable) { List<Attribute> newAttributeList = new LinkedList<Attribute>(); // add the attributes to the example table for (int i = 0; i < generators.length; i++) { Attribute outputAttribute[] = generators[i].getOutputAttributes(exampleTable); generators[i].resultAttributes = new Attribute[outputAttribute.length]; for (int j = 0; j < outputAttribute.length; j++) { newAttributeList.add(outputAttribute[j]); generators[i].resultAttributes[j] = outputAttribute[j]; } // check the arguments if (!generators[i].argumentsSet()) { throw new RuntimeException( "Catastrophic error: arguments not set for " + generators[i] + "!"); } if (!generators[i].argumentsOk(exampleTable)) { // LogService.getGlobal().log("Wrong argument types for " + generators[i] + ".", // LogService.WARNING); LogService.getRoot() .log( Level.WARNING, "com.rapidminer.generator.FeatureGenerator.wrong_argument_types", generators[i]); } } return newAttributeList; }
/** Creates a new FeatureGenerator for a given function name. */ public static FeatureGenerator createGeneratorForFunction(String functionName) { if (functionName == null) return null; Class genClass = generatorMap.get(functionName); if (genClass == null) { if (functionName.startsWith(ConstantGenerator.FUNCTION_NAME)) { FeatureGenerator gen = new ConstantGenerator(); gen.setFunction(functionName); return gen; } else { return null; } } else { try { FeatureGenerator gen = (FeatureGenerator) genClass.newInstance(); gen.setFunction(functionName); return gen; } catch (Exception e) { // LogService.getGlobal().log("Cannot instantiate '" + genClass.getName() + "'", // LogService.ERROR); LogService.getRoot() .log( Level.SEVERE, "com.rapidminer.generator.FeatureGenerator.instantiating_error", genClass.getName()); return null; } } }
public void setLevel(Level level) { LogService.getRoot().setLevel(level); handler.setLevel(level); ParameterService.setParameterValue( MainFrame.PROPERTY_RAPIDMINER_GUI_LOG_LEVEL, level.getName()); ParameterService.saveParameters(); }
public void setText(String text) { try { remove(0, getLength()); insertString(0, text, null); } catch (BadLocationException e) { LogService.getRoot() .log(Level.WARNING, RegexpPropertyDialog.class.getName() + ".bad_location", e); } }
/** * Checks whether the given domain belongs to an unsigned extension or not. * * @param domain the domain in question, never {@code null} * @return {@code true} if the domain belongs to an unsigned extension; {@code false} otherwise */ private static boolean isUnsignedPlugin(ProtectionDomain domain) { // everything not loaded by the plugin classloader is no plugin if (!(domain.getClassLoader() instanceof PluginClassLoader)) { return false; } // if the public key could not be initialized, we treat all plugins as unsafe if (key == null) { return true; } // some sanity checks if (domain.getCodeSource() == null) { return true; } // special case for SNAPSHOT version: grant all permissions for all extensions // unless security is enforced via system property if (RapidMiner.getVersion().isSnapshot() && !isSecurityEnforced()) { return false; } if (domain.getCodeSource().getCertificates() == null) { // if no certificate: unsigned permissions only return true; } try { verifyCertificates(domain.getCodeSource().getCertificates()); // signed by us, we are good at this point as we found a valid certificate return false; } catch (GeneralSecurityException e) { // invalid certificate LogService.getRoot() .log(Level.WARNING, "Invalid certificate for " + domain.getCodeSource().getLocation()); return true; } catch (Exception e) { // some other error during certificate verification LogService.getRoot() .log( Level.WARNING, "Error verifying certificate for " + domain.getCodeSource().getLocation(), e); return true; } }
@Override public Object getChild(Object parent, int index) { if (parent instanceof RepositoryManager) { if (onlyWriteableRepositories) { return getWritableRepositories(((RepositoryManager) parent)).get(index); } return ((RepositoryManager) parent).getRepositories().get(index); } else if (parent instanceof Folder) { Folder folder = (Folder) parent; if (folder.willBlock()) { unblock(folder); return "Pending..."; } else { try { int numFolders = folder.getSubfolders().size(); if (index < numFolders) { return folder.getSubfolders().get(index); } else if (onlyFolders) { return null; } else { return folder.getDataEntries().get(index - numFolders); } } catch (RepositoryException e) { // LogService.getRoot().log(Level.WARNING, "Cannot get children of "+folder.getName()+": // "+e, e); LogService.getRoot() .log( Level.WARNING, I18N.getMessage( LogService.getRoot().getResourceBundle(), "com.rapidminer.repository.gui.RepositoryTreeModel.getting_children_of_folder_error", folder.getName(), e), e); return null; } } } else { return null; } }
/** Sets the name of the main average (must be added by {@link #addAveragable(Averagable)}) */ public void setMainCriterionName(String mcName) { if ((!mcName.equals(MAIN_CRITERION_FIRST)) && (getAveragable(mcName) == null)) { // LogService.getGlobal().log("Main criterion not found: '" + mcName + "'.", // LogService.ERROR); LogService.getRoot() .log( Level.SEVERE, "com.rapidminer.operator.performance.PerformanceVector.main_criterion_not_found", mcName); } this.mainCriterion = mcName; }
public static void init() { File connectionsFile = getOldConnectionsFile(); File xmlConnectionsFile = getXMLConnectionsFile(); if (!xmlConnectionsFile.exists() && !connectionsFile.exists()) { // both files do not exist, create the new xml format file try { xmlConnectionsFile.createNewFile(); writeXMLConnectionsEntries(getConnectionEntries(), xmlConnectionsFile); } catch (IOException ex) { // do nothing } } else if (!xmlConnectionsFile.exists() && connectionsFile.exists()) { // only the old text format exists, read it and save as new xml format so next time only the // new xml format exists connections = readConnectionEntries(connectionsFile); writeXMLConnectionsEntries(getConnectionEntries(), xmlConnectionsFile); connectionsFile.delete(); } else { try { if (!"".equals(Tools.readTextFile(xmlConnectionsFile))) { Document document = XMLTools.parse(xmlConnectionsFile); Element jdbcElement = document.getDocumentElement(); connections = new LinkedList<FieldConnectionEntry>(parseEntries(jdbcElement)); } } catch (Exception e) { // LogService.getRoot().log(Level.WARNING, "Failed to read database connections file: "+e, // e); LogService.getRoot() .log( Level.WARNING, I18N.getMessage( LogService.getRoot().getResourceBundle(), "com.rapidminer.tools.jdbc.connection.DatabaseConnectionService.reading_database_error", e), e); } } }
private LoggingViewer(JTextPane textArea) { super(new BorderLayout()); final Level level = getSpecifiedLogLevelIndex(); handler.setLevel(level); LogService.getRoot().setLevel(level); maxRows = 1000; try { String maxRowsString = ParameterService.getParameterValue( MainFrame.PROPERTY_RAPIDMINER_GUI_MESSAGEVIEWER_ROWLIMIT); if (maxRowsString != null) maxRows = Integer.parseInt(maxRowsString); } catch (NumberFormatException e) { // LogService.getGlobal().log("Bad integer format for property '', using default number of // maximum rows for logging (1000).", LogService.WARNING); LogService.getRoot() .log( Level.WARNING, "com.rapidminer.gui.tools.LoggingViewer.bad_integer_format_for_property"); } this.textArea = textArea; this.textArea.setToolTipText( "Displays logging messages according to the current log verbosity (parameter of root operator)."); this.textArea.setEditable(false); this.textArea.addMouseListener(this); this.textArea.setFont(this.textArea.getFont().deriveFont(Font.PLAIN)); LogService.getRoot().addHandler(handler); JToolBar toolBar = new ExtendedJToolBar(); toolBar.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, Color.LIGHT_GRAY)); toolBar.add(SAVE_LOGFILE_ACTION); toolBar.add(CLEAR_MESSAGE_VIEWER_ACTION); toolBar.add(SEARCH_ACTION); add(toolBar, BorderLayout.NORTH); JScrollPane scrollPane = new ExtendedJScrollPane(textArea); scrollPane.setBorder(null); add(scrollPane, BorderLayout.CENTER); }
public void addCriterion(PerformanceCriterion crit) { PerformanceCriterion pc = getCriterion(crit.getName()); if (pc != null) { removeAveragable(pc); // LogService.getGlobal().log("Performance criterion '" + crit.getName() + "' was already part // of performance vector. Overwritten...", LogService.WARNING); LogService.getRoot() .log( Level.WARNING, "com.rapidminer.operator.performance.PerformanceVector.performance_criterion_already_part_of_performance_vector", crit.getName()); } addAveragable(crit); }
public static void writeXMLConnectionsEntries( Collection<FieldConnectionEntry> connectionEntries, File connectionEntriesFile) { Key key; try { key = KeyGeneratorTool.getUserKey(); } catch (IOException e) { // LogService.getRoot().log(Level.WARNING, "Cannot retrieve key, probably no one was created: // "+e, e); LogService.getRoot() .log( Level.WARNING, I18N.getMessage( LogService.getRoot().getResourceBundle(), "com.rapidminer.tools.jdbc.connection.DatabaseConnectionService.retrieving_key_error", e), e); return; } try { XMLTools.stream( toXML(connectionEntries, key, null, false), connectionEntriesFile, Charset.forName("UTF-8")); } catch (Exception e) { // LogService.getRoot().log(Level.WARNING, "Failed to write database connections file: "+e, // e); LogService.getRoot() .log( Level.WARNING, I18N.getMessage( LogService.getRoot().getResourceBundle(), "com.rapidminer.tools.jdbc.connection.DatabaseConnectionService.writing_database_connection_error", e), e); } }
/** @return the text for the beta eula */ private String loadBetaEULA() { String eulaText = null; // read EULA text try (InputStream inputStream = Tools.getResourceInputStream(BETA_EULA)) { eulaText = Tools.readTextFile(inputStream); } catch (IOException | RepositoryException e2) { // loading the EULA failed (this should never happen) LogService.getRoot() .log( Level.SEVERE, "com.rapidminer.gui.properties.BetaFeaturesListener.cannot_open_beta_eula"); } return eulaText; }
public void addTabI18N(String key, Component component, String... i18nArgs) { String name; if (i18nArgs != null && i18nArgs.length > 0) { name = formatMessage(key, "label", i18nArgs); } else { name = getMessage(key, "label"); } Icon icon = null; String iconName = getMessageOrNull(key, "icon"); if (iconName != null) { icon = SwingTools.createIcon((isLargeIcons() ? "24/" : "16/") + iconName); } addTab(name, icon, component); int index = getTabCount() - 1; String tip; if (i18nArgs != null && i18nArgs.length > 0) { tip = formatMessage(key, "tip", i18nArgs); } else { tip = getMessageOrNull(key, "tip"); } if (tip != null) { setToolTipTextAt(index, tip); } // try to look up and set mnemonic String mne = getMessageOrNull(key, "mne"); if (mne != null) { mne = mne.toUpperCase(); if (name.indexOf(mne.charAt(0)) == -1) { if (name.indexOf(mne.toUpperCase().charAt(0)) != -1) { mne = mne.toUpperCase(); LogService.getRoot() .warning( "Mnemonic key " + mne + " not found for tab " + i18KeyPrefix + "." + key + " (" + name + "), converting to upper case."); } } setMnemonicAt(index, mne.charAt(0)); } }
private static void initFormatDelegate( ValueSource valueSource, FormattedRenderer formattedRenderer, PlotInstance plotInstance) { ValueSourceData valueSourceData = plotInstance.getPlotData().getValueSourceData(valueSource); List<Integer> seriesIndices = new LinkedList<Integer>(); if (valueSourceData != null) { for (int i = 0; i < valueSourceData.getSeriesCount(); ++i) { seriesIndices.add(i); } } else { LogService.getRoot() .log( Level.WARNING, "com.rapidminer.gui.new_plotter.engine.jfreechart.ChartRendererFactory.null_value_source"); } initFormatDelegate(valueSource, seriesIndices, formattedRenderer, plotInstance); }
@Override public void setFunction(String name) { for (int i = 0; i < FUNCTION_NAMES.length; i++) { if (FUNCTION_NAMES[i].equals(name)) { this.mode = i; return; } } // LogService.getGlobal().log("Illegal function name '" + name + "' for " + getClass().getName() // + ".", LogService.ERROR); LogService.getRoot() .log( Level.SEVERE, "com.rapidminer.generator.FloorCeilGenerator.illegal_function_name", new Object[] {name, getClass().getName()}); }
private void checkDocument() { setCharacterAttributes(0, getLength(), rootStyle, true); try { matcher.reset(getText(0, getLength())); int count = 0; resultsListModel.clear(); while (matcher.find()) { if (matcher.end() <= matcher.start()) { continue; } setCharacterAttributes(matcher.start(), matcher.end() - matcher.start(), keyStyle, true); String[] groups = new String[matcher.groupCount()]; for (int i = 1; i <= matcher.groupCount(); i++) { groups[i - 1] = matcher.group(i); } resultsListModel.addElement( new RegExpResult( this.getText(matcher.start(), matcher.end() - matcher.start()), groups, count + 1)); count++; } if (count == 0) { // add empty element resultsListModel.addElement(new RegExpResult()); } testExp.setTitleAt( 1, I18N.getMessage( I18N.getGUIBundle(), "gui.dialog.parameter.regexp.regular_expression.result_list.title") + " (" + count + ")"); inlineReplaceDocument.setText(matcher.replaceAll(replacementTextField.getText())); updateRegexpOptions(); } catch (BadLocationException ex) { LogService.getRoot() .log(Level.WARNING, RegexpPropertyDialog.class.getName() + ".bad_location", ex); } }
public static Color string2Color(String colorString) { try { return Color.decode(colorString); } catch (Exception e) { String[] colors = colorString.split(","); if (colors.length == 3) { return new Color( Integer.parseInt(colors[0]), Integer.parseInt(colors[1]), Integer.parseInt(colors[2])); } else { // LogService.getRoot().warning("Cannot parse color: "+colorString); LogService.getRoot() .log( Level.WARNING, "com.rapidminer.parameter.ParameterTypeColor.parsing_color_error", colorString); return Color.BLACK; } } }
public Attribute getRegular(String name) { AttributeRole role = findRoleByName(name); if (role != null) { if (!role.isSpecial()) { return role.getAttribute(); } else { // LogService.getGlobal().logWarning("No regular attribute with name '"+name+"' found, // however, there is a special attribute with the same name."); LogService.getRoot() .log( Level.WARNING, "com.rapidminer.example.AbstractAttributes.no_regular_attribute_found", name); return null; } } else { return null; } // return findAttribute(name, iterator()); }
protected void parseCondition(Element childElem) { NodeList conditionNodes = childElem.getChildNodes(); for (int j = 0; j < conditionNodes.getLength(); j++) { Node conditionNode = conditionNodes.item(j); if (conditionNode instanceof Element) { Element conditionElem = (Element) conditionNode; if (conditionElem.getTagName().equals("parameter_equals")) { conditions.add(new ParameterEqualsCondition((Element) conditionNode)); } else if (conditionElem.getTagName().equals("parameter_unequals")) { conditions.add(new ParameterUnequalsCondition((Element) conditionNode)); } else { // LogService.getRoot().warning("Unknown condition: "+conditionElem.getTagName()); LogService.getRoot() .log( Level.WARNING, "com.rapidminer.io.process.rules.AbstractConditionedParseRule.unknown_condition", conditionElem.getTagName()); } } } }
public ExecutionUnit(OperatorChain enclosingOperator, String name) { this.name = name; this.enclosingOperator = enclosingOperator; innerInputPorts.addObserver(delegatingPortObserver, false); innerOutputPorts.addObserver(delegatingPortObserver, false); // innerInputPorts.addObserver(portObserver, false); // innerOutputPorts.addObserver(portObserver, false); int index = 0; do { char c = name.charAt(index); if (!(Character.isUpperCase(c) || Character.isDigit(c))) { // LogService.getRoot().warning("Process name does not follow naming conventions: "+name+" // (in "+enclosingOperator.getOperatorDescription().getName()+")"); LogService.getRoot() .log( Level.WARNING, "com.rapidminer.operator.ExecutionUnit.process_name_does_not_follow_name_conventions", new Object[] {name, enclosingOperator.getOperatorDescription().getName()}); } index = name.indexOf(' ', index) + 1; } while (index != 0); }
/** * Adds a new attribute to this example table by invoking the super method. If the number of * attributes reaches a threshold, the number of attributes is increased by INCREMENT attributes. * This avoids a large number of array copies in cases like automatic feature construction etc. */ @Override public synchronized int addAttribute(Attribute attribute) { int index = super.addAttribute(attribute); if (dataList == null) return index; int n = getNumberOfAttributes(); if (n <= columns) return index; int newSize = n + INCREMENT; // LogService.getGlobal().log("Resizing example table from " + columns + " to " + newSize + " // columns.", LogService.STATUS); LogService.getRoot() .log( Level.FINE, "com.rapidminer.example.table.MemoryExampleTable.rezising_example_table", new Object[] {columns, newSize}); columns = newSize; if (dataList != null) { Iterator<DataRow> i = dataList.iterator(); while (i.hasNext()) i.next().ensureNumberOfColumns(columns); } return index; }
/** * Saves the content of the comment editor as the new comment for the given {@link * WorkflowAnnotation}. * * @param selected the annotation for which the content of the editor pane should be saved as new * comment */ private void saveEdit(final WorkflowAnnotation selected) { if (editPane == null) { return; } HTMLDocument document = (HTMLDocument) editPane.getDocument(); StringWriter writer = new StringWriter(); try { editPane.getEditorKit().write(writer, document, 0, document.getLength()); } catch (IndexOutOfBoundsException | IOException | BadLocationException e1) { // should not happen LogService.getRoot() .log( Level.WARNING, "com.rapidminer.gui.flow.processrendering.annotations.AnnotationsDecorator.cannot_save"); } String comment = writer.toString(); comment = AnnotationDrawUtils.removeStyleFromComment(comment); Rectangle2D loc = selected.getLocation(); Rectangle2D newLoc = new Rectangle2D.Double( loc.getX(), loc.getY(), editPane.getBounds().getWidth(), editPane.getBounds().getHeight()); selected.setLocation(newLoc); boolean overflowing = false; int prefHeight = AnnotationDrawUtils.getContentHeight( AnnotationDrawUtils.createStyledCommentString(comment, selected.getStyle()), (int) newLoc.getWidth()); if (prefHeight > newLoc.getHeight()) { overflowing = true; } selected.setOverflowing(overflowing); model.setAnnotationComment(selected, comment); }
/** * Checks whether the system property {@value #PROPERTY_SECURITY_ENFORCED} is set to {@code true}. * This property is used to enable the full plugin sandbox security even on SNAPSHOT versions. * * @return {@code true} if the system property is set to 'true', {@code false} otherwise */ private static boolean isSecurityEnforced() { // no need to synchronize, if this is entered multiple times it's fine if (enforced == null) { enforced = AccessController.doPrivileged( new PrivilegedAction<Boolean>() { @Override public Boolean run() { return Boolean.parseBoolean(System.getProperty(PROPERTY_SECURITY_ENFORCED)); } }); if (enforced) { LogService.getRoot() .log( Level.INFO, "Plugin sandboxing enforced via '" + PROPERTY_SECURITY_ENFORCED + "' property."); } } return enforced; }
@Override public SecretKey loadKey() throws KeyLoadingException { // try to load key from file File keyFile = new File(FileSystemService.getUserRapidMinerDir(), DEFAULTKEY_FILE_NAME); try (FileInputStream fis = new FileInputStream(keyFile); ObjectInputStream in = new ObjectInputStream(fis)) { int length = in.readInt(); byte[] rawKey = new byte[length]; int actualLength = in.read(rawKey); if (length != actualLength) { throw new IOException("Cannot read key file (unexpected length)"); } return KeyGeneratorTool.makeKey(rawKey); } catch (IOException e) { // catch to log the problem, then throw again to indicate error LogService.getRoot() .log( Level.WARNING, "com.rapidminer.tools.cipher.KeyGeneratorTool.read_key_error", e.getMessage()); throw new KeyLoadingException("Cannot retrieve key: " + e.getMessage()); } }