diff --git a/.classpath b/.classpath index 722043f..7354c6b 100644 --- a/.classpath +++ b/.classpath @@ -1,6 +1,10 @@ - + + + + + diff --git a/src/gui/DrawboxEditor.java b/src/gui/DrawboxEditor.java index 3e77358..b39ab46 100644 --- a/src/gui/DrawboxEditor.java +++ b/src/gui/DrawboxEditor.java @@ -87,19 +87,7 @@ public class DrawboxEditor extends Editable { Point p = new Point(e.getX(), e.getY()); drawboxPoints.add(p); if(drawboxPoints.size() == 4) { - Point baseStart = drawboxPoints.get(0), - baseEnd = drawboxPoints.get(1); - for(Point pseudo: drawboxPoints) { // если не будет цикла в цикле - не выйдет сравнить всех со всеми - for(Point vertex: drawboxPoints) { // что приведёт к артефактам построения основания - if(vertex != baseStart && vertex != baseEnd) { - if(vertex.y >= baseStart.y) baseStart = vertex; - else if(vertex.y >= baseEnd.y) baseEnd = vertex; - } - } - } - basePoints.add(baseStart); - basePoints.add(baseEnd); - + sortingDrawboxPoints(); saveDataInEntity(); //при выборе 4-й точки и формировании данных drawbox, уведомляем всех подписчит if(listeners!=null) { @@ -116,16 +104,24 @@ public class DrawboxEditor extends Editable { * но на данном этапе на всякий случай стоит так поступить*/ private void sortingDrawboxPoints() { //окей, это написано плохо, но... Похуй, пляшем) - for(int i = 0; i<3; i++) { - Point leftTopPoint = drawboxPoints.get(i); - for(int j = i+1; j<4; j++) { - if((leftTopPoint.x>drawboxPoints.get(j).x)&&(leftTopPoint.y>drawboxPoints.get(j).y)) { - Collections.swap(drawboxPoints, 0, j); - - } - - } + Collections.sort( + drawboxPoints, + (point1, point2) -> Float.compare(point1.y, point2.y) + ); + if(drawboxPoints.get(0).x>drawboxPoints.get(1).x) { + Collections.swap(drawboxPoints, 0, 1); } + if(drawboxPoints.get(2).x, EntityDrawboxChangedListener { public List getListEntity() { return listEntity; } - +/* + * Получение события при отрисовке нового Drawbox, для изменения XML-дерева. + * Объект event хранит в себе ссылку на новый объект drawbox и объект entity, для которой он был создан. + * Необходимо из Entity получить имя сущности и в XML-дереве изменить данные drawbox-а, используя функцию toString. + * */ @Override public void getEvent(EntityDrawboxChangedEvent event) { // TODO Auto-generated method stub