예제 #1
0
  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);
            }
          }
        });
  }