/** * Parses a {@link String}, and depending on the incarnation provides a * {@link Molecule}. * * @param s * the {@link String} to parse * @return an {@link Molecule} created parsing the passed {@link String} */ public Molecule createMolecule(final String s) { return incarnation.createMolecule(s); }
/** * Given an {@link Node}, an {@link Molecule} and a property expressed as * a {@link String}, returns a numeric value. If a numeric value is not * deducible, Double.NaN is returned. * * @param node * the node * @param mol * the molecule to analyze * @param prop * the property to extract * @param <T> * {@link Concentration} type * @return a numeric value representing the property */ @SuppressWarnings("unchecked") public <T> double getProperty(final Node<T> node, final Molecule mol, final String prop) { return ((Incarnation<T>) incarnation).getProperty(node, mol, prop); }
final Thread th = new Thread(() -> molecule = incarnation.createMolecule(molString)); th.start(); try { if (minV < maxV) { @SuppressWarnings({ "rawtypes", "unchecked" }) double propval = incarnation.getProperty((Node) n, molecule, property); if (isWritingPropertyValue()) { g.setColor(colorCache);
@SuppressWarnings("unchecked") private void buildActionListeners() { concentration.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(final MouseEvent e) { concentration.selectAll(); } }); molecule.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(final MouseEvent e) { molecule.selectAll(); } }); apply.addActionListener((event) -> { final String mol = molecule.getText(); final String conc = concentration.getText(); final Incarnation<T> currentInc = incarnation.getCurrent(); for (final Node<T> n : affectedNodes) { try { n.setConcentration(currentInc.createMolecule(mol), currentInc.createConcentration(conc)); } catch (Exception | AbstractMethodError e) { L.error("Unable to set new concentration: ", e); } } }); selectedIncr.addActionListener((event) -> incarnation.setCurrent((Incarnation<T>) (selectedIncr.getSelectedItem()))); } }