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); }
/** 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); }
/** 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); }
/** 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); }
/** 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); }
/** 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); } } }
/** 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); }