private void defineDependencies() { m_function.dependsOn( new MMInterval[] {m_defInterval}, new DependencyAdapter() { public void doUpdate() { m_function.setBorelSet(new FiniteBorelSet(m_defInterval)); } }); m_defInterval.dependsOn( m_lower, new DependencyAdapter() { public void doUpdate() { m_defInterval.setLowerBoundary( m_lower.getAffineCoordinatesOfPoint().getEntry(1), Interval.CLOSED); } }); m_defInterval.dependsOn( m_upper, new DependencyAdapter() { public void doUpdate() { m_defInterval.setUpperBoundary( m_upper.getAffineCoordinatesOfPoint().getEntry(1), Interval.OPEN); } }); yPos.dependsOn( new MMObjectIF[] {xPos, m_function}, new DependencyAdapter() { public void doUpdate() { yPos.setDouble(m_function.evaluate(xPos.getDouble())); } }); m_lower.dependsOn( new MMInterval[] {m_defInterval}, new DependencyAdapter() { public void doUpdate() { m_lower.setVisible(true); m_lower.setXY(m_defInterval.getLowerBoundaryVal().getDouble(), 0); if (m_defInterval.getLowerBoundaryVal().isInfinity()) { m_lower.setVisible(false); } } }); m_upper.dependsOn( new MMInterval[] {m_defInterval}, new DependencyAdapter() { public void doUpdate() { m_upper.setVisible(true); m_upper.setXY(m_defInterval.getUpperBoundaryVal().getDouble(), 0); if (m_defInterval.getUpperBoundaryVal().isInfinity()) { m_upper.setVisible(false); } } }); }