/** 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); }
/** Restituisce l'ordinata dell'estremo in alto a sinistra. */ public int getTopY() { return grafico.getY(); }
/** Restituisce l'ascissa dell'estremo in alto a sinistra. */ public int getTopX() { return grafico.getX(); }
public void Mod_sim(Point p) { grafico.Mod_sim(p); }
/** * Analogo al metodo isIn() di 'ElementoProcessoStato'_ Serve per verificare se il punto 'p' � * sufficientemente vicino agli angoli dell'operatore (vicino dal punto di vista grafico). */ public boolean isSelezionato_sim(Point p) { return grafico.isSelezionato_sim(p); }
/** * Analogo al metodo isIn() di 'ElementoProcessoStato'_ Serve per verificare se il punto 'p' � * sufficientemente vicino agli angoli dell'operatore (vicino dal punto di vista grafico). */ public boolean isSelected_sim(Point p) { return grafico.isSelected_sim(p); }
/** Inverte lo stato selezionato/deselezionato dell'operatore. */ public void invSelected() { grafico.invSelected(); }
/** Verifica se l'operatore � selezionato. */ public boolean isSelected() { return grafico.isSelected(); }
/** Seleziona/deseleziona l'operatore. */ public void setSelected(boolean ctrlSelection) { grafico.setSelected(ctrlSelection); }
/** Restituisce l'altezza della forma rettangolare. */ public int getHeight() { return grafico.getHeight(); }
/** Restituisce la larghezza della forma rettangolare. */ public int getWidth() { return grafico.getWidth(); }
/** Aggiorna la posizione dopo la modofica della posizione della figura. */ public void updateSimPosizione_am() { grafico.updateSimPosizione(rettangoloX, rettangoloY, sim_height, sim_width); }
/** Aggiorna la posizione dopo la modofica della posizione di una classe. */ public void updateSimPosizione() { setXYRet(); setSim_point_width(); setSim_Height(); grafico.updateSimPosizione(rettangoloX, rettangoloY, sim_height, sim_width); }
/** Disegna il grafico associato all'operatore Simo. */ public void paintSim(Graphics2D g2D) { boolean bo = this.testAndSet(); if (grafico != null) grafico.paintGraficoSim(g2D); testAndReset(bo); }