2015-03-12 8 views
1

Хотелось бы узнать, есть ли возможность представлять символы UML2 Boundary/Control/Entity диаграммы последовательности в UMLet? (http://www.uml.org.cn/oobject/images/seq02.gif)UML 2 символы диаграммы последовательности в UMLet?

Должен ли я сам написать свой код Java или он уже существует где-то?

ответ

1

Это фрагмент, который я использовал для создания символа границы в UMLet. Вы можете изменить его по мере необходимости.

int h = height - textHeight() * textlines.size(); 
int radius = h/2; 
drawCircle(width-radius, radius, radius); 
drawLine(0, 10, 0, h-10); 
drawLine(0, radius, width-h, radius); 

int y = textHeight()+5; 
for(String textline : textlines) { 
    printCenter(textline, height-3); 
} 

Preview:

enter image description here

0

Я не уверен, имеете ли вы в виду последовательность или последовательность все-в-одном.

Хотя эти новые линии жизни не поддерживаются, вы можете легко добавить элемент к первому. Есть хороший и простой учебник о том, как добавить новый элемент здесь. http://www.umlet.com/ce/ce.htm

Если вы хотите добавить его в многофункциональное устройство, вам нужно будет погрузиться во внутренние детали, поскольку для этого потребуются также изменения в текстовый синтаксический анализатор.

+0

Я имел в виду нормальной последовательности, я думаю. Учебник не очень помог мне в рисовании, поскольку в элементе управления есть такая стрелка, подобная циклу, и так далее. Тогда я попробую. Спасибо за ваш ответ ! – Maisunadokei1856

+0

Почему это проблема? Вы можете нарисовать круг, а затем две линии. Если вы нажмете ctrl + space (по крайней мере, по Linux) в поле кода, он покажет вам все доступные команды. Что-то вроде: drawCircle (20, 30, 20); drawLine (20, 10, 30, 15); drawLine (20, 10, 30, 5); –

0

Так я вроде сделал несколько моделей, основанных на Ноев самостоятельно. Это далеко не профессиональная вещь и довольно грязный код, но, похоже, это трюк в течение некоторого времени. Так что если кто-нибудь получает такую ​​же проблему, как и я, прежде чем эти символы лучше реализованы в UMLet:

Entity:

int h = height - textHeight() * textlines.size(); 
int radius = h*2/5; 
int w = radius*2 ; 

double x = (width - w)/2 + radius ; 
double y = h/10 + radius; 

double x2 = x + radius/4 * Math.sqrt(3); 
double y2 = y - radius/4 ; 

drawCircle((int)x, (int) y, radius); 
drawLine((int)x-radius , (int)y + radius , (int) x+ radius, (int) y+radius); 
drawLine((int)x - radius , (int) y - 2*radius , (int) x + radius, (int) y - 2*radius); 

for(String textline : textlines) { 
    printCenter(textline, h); 
} 

управления:

int h = height - textHeight() * textlines.size(); 
int radius = h*2/5; 
int w = radius*2 ; 

double x1 = (width - w)/2 + radius ; 
double y1 = h/10; 

double x2 = x1 + radius/4 * Math.sqrt(3); 
double y2 = y1 - radius/4 ; 

double x3 = x1 + radius/4 * Math.sqrt(3); 
double y3 = y1 + radius/4; 

drawCircle((int)x1, (int) y1+radius, radius); 
drawLine((int)x1, (int) y1 , (int)x2, (int)y2); 
drawLine((int)x1, (int) y1 , (int)x3, (int)y3); 

int y = textHeight()+5; 

for(String textline : textlines) { 
    printCenter(textline, h); 
}