diff --git a/src/main/java/ui/avatarmethodology/AvatarMethodologyDiagramName.java b/src/main/java/ui/avatarmethodology/AvatarMethodologyDiagramName.java index eb72c838bfe7a5aa26b114995fbb3a966d2024dd..55aa1604e51e54fef3a8d734c1c69aab84296675 100755 --- a/src/main/java/ui/avatarmethodology/AvatarMethodologyDiagramName.java +++ b/src/main/java/ui/avatarmethodology/AvatarMethodologyDiagramName.java @@ -131,6 +131,78 @@ public class AvatarMethodologyDiagramName extends TGCScalableWithoutInternalComp g.setFont(font.deriveFont(fontStyle)); } + private void GestionOfValidations(Graphics g, Font font) + { + int widthText = g.getFontMetrics().stringWidth(value); + int widthFather = getFather().getWidth(); + int curWidth = Math.max(width, myWidth); + + if (validations == null) + if (getFather() instanceof AvatarMethodologyDiagramReference) + ((AvatarMethodologyDiagramReference)(getFather())).makeValidationInfos(this); + + if ((validations != null) && (valMinX == null)) { + valMinX = new int[validations.length]; + valMaxX = new int[validations.length]; + } + + int currentMaxWidthX = widthFather + x - 2 * (X_MARGIN); + int saveCurrentMaxX = currentMaxWidthX; + boolean oneWritten = false; + int saveWidth = 0; + g.setFont(font.deriveFont(Font.ITALIC)); + boolean pointerIsOnMe = tdp.componentPointed() == this ? true : false; + + if ((validations != null) & (validations.length > 0)) { + for (int i = validations.length - 1; i >= 0; i--) { + saveWidth = g.getFontMetrics().stringWidth(SHORT_ACTION_NAMES[validations[i]]); + +// if ((pointerIsOnMe && indexOnMe == i)) +// g.setFont(font.deriveFont(Font.ITALIC)); + setFontStyleWhenPointerIsOnMe(g,Font.ITALIC, pointerIsOnMe, font, i); + if ((currentMaxWidthX - saveWidth) > (x + widthText)) + { + //if ((pointerIsOnMe && indexOnMe == i)) + // g.setFont(font.deriveFont(Font.BOLD)); + setFontStyleWhenPointerIsOnMe(g, Font.BOLD, pointerIsOnMe, font, i); + g.drawString(SHORT_ACTION_NAMES[validations[i]], currentMaxWidthX - saveWidth, y); + g.setFont(font.deriveFont(Font.ITALIC)); + valMinX[i] = currentMaxWidthX-saveWidth; + valMaxX[i] = currentMaxWidthX; + oneWritten = true; + currentMaxWidthX = currentMaxWidthX - saveWidth - 5; + } else + break; + } + } + g.setFont(font); + if (oneWritten) + makeScale(g, saveCurrentMaxX - x); + else + makeScale(g, widthText); + if (pointerIsOnMe) //Issue #31: The rectangle was not around the text when zoom: with scale it works better + //g.drawRect(x - 2, y - 12, curWidth + 5, 15); + g.drawRect(x - 2, y - scale(15), curWidth + 5, scale(15)); + + return; + + } + /** Issue #31: Refactored internalDrawing for more comprehension + * Draws the text of the diagram references and the eventual validations + * @param g + */ + @Override + public void internalDrawing(Graphics g) + { + // Strings + String textDiagramRef = value; + Font f = g.getFont(); + g.drawString(textDiagramRef, x, y); + + //validation and String + GestionOfValidations(g, f); + } + /* @Override public void internalDrawing(Graphics g) { @@ -146,8 +218,8 @@ public class AvatarMethodologyDiagramName extends TGCScalableWithoutInternalComp Font font = g.getFont(); boolean pointerIsOnMe = tdp.componentPointed() == this ? true : false; - /*if (pointerIsonMe && indexOnMe == -1) - g.setFont(font.deriveFont(Font.BOLD));*/ + //if (pointerIsonMe && indexOnMe == -1) + // g.setFont(font.deriveFont(Font.BOLD)); setFontStyleWhenPointerIsOnMe(g, Font.BOLD, pointerIsOnMe, font, -1); int curWidth = Math.max(width, myWidth); //int curWidth = myWidth; curWidth = Math.max(widthAppli, curWidth); g.drawString(diagramRefTextName, x, y); @@ -206,6 +278,7 @@ public class AvatarMethodologyDiagramName extends TGCScalableWithoutInternalComp return; } + */ /* Issue #31 public void internalDrawing(Graphics g) { if ((y + Y_MARGIN) > (getFather().getY() + getFather().getHeight()))