示例#1
0
 public void setXYRet() {
   boolean bo = this.testAndSet();
   int retX = 0;
   int retY = 0;
   if (link_first.getFlussoDiretto()) {
     retX = link_first.getPointStart().x;
     retY = link_first.getPointStart().y;
   } else {
     retX = link_first.getPointEnd().x;
     retY = link_first.getPointEnd().y;
   }
   for (int i = 0; i < list_mess.size(); i++) {
     ElementoSeqLink link = (ElementoSeqLink) list_mess.get(i);
     if (link.getFlussoDiretto()) {
       if (link.getPointStart().x < retX) retX = link.getPointStart().x;
     } else {
       if (link.getPointEnd().x < retX) retX = link.getPointEnd().x;
     }
   }
   rettangoloX = retX;
   rettangoloY = retY;
   rettanY_back = rettangoloY;
   rettanX_back = rettangoloX;
   this.testAndReset(bo);
 }
示例#2
0
 /** Setta l'ultimo messaggio dell'operatore * */
 public void setLast_link() {
   boolean bo = this.testAndSet();
   ElementoSeqLink app = (ElementoSeqLink) list_mess.get(0);
   int i = app.getPointStart().y;
   for (int j = 0; j < list_mess.size(); j++) {
     ElementoSeqLink link = (ElementoSeqLink) list_mess.get(j);
     if (link.getPointStart().y >= i) link_last = link;
   }
   testAndReset(bo);
 }
示例#3
0
  /** Controlla se dopo lo spostamento sia stato selezionato o deselezionato qualche link * */
  public void CntrlElem() {
    boolean bo = this.testAndSet();
    ElementoSeqLink link;
    ElementoSeqLink link1;
    for (int i = 0; i < list_link.size(); i++) {
      if (!list_mess.contains(list_link.get(i))) {
        link = (ElementoSeqLink) list_link.get(i);
        if (grafico.getSimRectangle().contains(link.getPointStart())
            || grafico.getSimRectangle().contains(link.getPointEnd())) {
          if (link.isSimultaneous() || link.isParallel()) {
            setLast_link();
            setFirst_link();
            testAndReset(bo);
            return;
          }
          if (link.hasConstraint()) {
            if (link.isConstraintChCloFut()
                || link.isConstraintChOpFut()
                || link.isConstraintChCloPast()
                || link.isConstraintChOpPast()
                || link.isConstraintUnCloFut()
                || link.isConstraintUnOpFut()
                || link.isConstraintUnCloPast()
                || link.isConstraintUnOpPast()) {
              setLast_link();
              setFirst_link();
              testAndReset(bo);
              return;
            } else addElem(link);
          } else addElem(link);
        }
      }
    }

    for (int j = 0; j < list_link.size(); j++) {
      if (list_mess.contains(list_link.get(j))) {
        link1 = (ElementoSeqLink) list_link.get(j);
        if (!(grafico.getSimRectangle().contains(link1.getPointStart())
            || grafico.getSimRectangle().contains(link1.getPointEnd()))) {
          removeElem(link1);
        }
      }
    }
    setLast_link();
    setFirst_link();
    testAndReset(bo);
  }
示例#4
0
  /** Imposta la posizione del grafico dell'elemento. */
  public void setPoint_mov(Point p) {
    boolean bo = testAndSet();

    if (grafico.isSelezionato_sim_bot_right()) {
      if (p.y > link_first.getPointStart().y + 40) {
        if (p.x <= rettangoloX + width_back) sim_height = p.y - rettangoloY - 5;
        else sim_width = p.x - rettangoloX - 5;
        sim_height = p.y - rettangoloY - 5;
      }
    } else if (grafico.isSelezionato_sim_bot_left()) {
      if (p.y > link_first.getPointStart().y + 40) {
        if (p.x >= rettanX_back) sim_height = p.y - rettangoloY - 5;
        else {
          sim_height = p.y - rettangoloY - 5;
          sim_width = width_back - 10 + rettanX_back - p.x;
          rettangoloX = p.x + 10;
        }
      }
    } else if (grafico.isSelezionato_sim_up_left()) {
      if (p.y < link_last.getPointStart().y - 50) {
        if (p.x >= rettanX_back) {
          sim_height = height_back - 25 + rettanY_back - p.y;
          rettangoloY = p.y + 25;
        } else {
          sim_width = width_back - 10 + rettanX_back - p.x;
          sim_height = height_back - 25 + rettanY_back - p.y;
          rettangoloX = p.x + 10;
          rettangoloY = p.y + 25;
        }
      }
    } else if (grafico.isSelezionato_sim_up_right()) {
      if (p.y < link_last.getPointStart().y - 50) {
        if (p.x <= rettangoloX + width_back) {
          sim_height = height_back - 25 + rettanY_back - p.y;
          rettangoloY = p.y + 25;
        } else {
          sim_width = p.x - rettangoloX - 5;
          sim_height = height_back - 25 + rettanY_back - p.y;
          rettangoloY = p.y + 25;
        }
      }
    }
    testAndReset(bo);
  }
示例#5
0
 /** setta la variabile point_width */
 public void setSim_point_width() {
   boolean bo = this.testAndSet();
   int start;
   int end;
   ElementoSeqLink prec_lev;
   if (link_last.getFlussoDiretto()) {
     start = link_last.getPointStart().x;
     end = link_last.getPointEnd().x;
   } else {
     start = link_last.getPointEnd().x;
     end = link_last.getPointStart().x;
   }
   for (int i = 0; i < list_mess.size(); i++) {
     prec_lev = (ElementoSeqLink) list_mess.get(i);
     if (prec_lev.getFlussoDiretto()) {
       if (prec_lev.getPointStart().x < start) start = prec_lev.getPointStart().x;
       if (prec_lev.getPointEnd().x > end) end = prec_lev.getPointEnd().x;
     } else {
       if (prec_lev.getPointEnd().x < start) start = prec_lev.getPointEnd().x;
       if (prec_lev.getPointStart().x > end) end = prec_lev.getPointStart().x;
     }
   }
   sim_width = end - start;
   width_back = sim_width;
   this.testAndReset(bo);
 }
示例#6
0
  /** Stampa tutti gli oggetti della lista. */
  public void paintLista(Graphics2D g2D) {
    for (int i = 0; i < lista.size(); i++) {
      ElementoSeqLink esl = (ElementoSeqLink) lista.get(i);
      esl.paintCanale(g2D);
      if (esl.getPrec() != null) {
        if (esl.isStrict()) {
          if (esl.getFlussoDiretto())
            esl.creaGraficoStrict(
                esl.getPointStart().x,
                esl.getPointStart().y,
                esl.getPointStart().x,
                esl.getPrec().getPointEnd().y,
                g2D);
          else
            esl.creaGraficoStrict(
                esl.getPointEnd().x,
                esl.getPointEnd().y,
                esl.getPointEnd().x,
                esl.getPrec().getPointEnd().y,
                g2D);
        }

      } else if (esl.isStrict()) {
        if (esl.getFlussoDiretto())
          esl.creaGraficoStrict(
              esl.getPointStart().x,
              esl.getPointStart().y,
              esl.getPointStart().x,
              esl.getProcY(),
              g2D);
        else
          esl.creaGraficoStrict(
              esl.getPointEnd().x, esl.getPointEnd().y, esl.getPointEnd().x, esl.getProcY(), g2D);
      }
    }
  }
示例#7
0
 /** setta l'altezza della figura* */
 public void setSim_Height() {
   boolean bo = this.testAndSet();
   sim_height = link_last.getPointEnd().y - link_first.getPointStart().y;
   height_back = sim_height;
   testAndReset(bo);
 }