public String getRecList2() { String result = "<html>"; // Список символов result += "<table><tr><td>Num</td><td>Coordinate</td></tr>"; for (int i = 0; i < tc.getModules().size(); i++) { // Список определенных символов result += "<tr>"; result += "<td>"; result += "" + (i + 1); result += "</td>"; result += "<td>"; result += "(" + tc.getModules().get(i).getA().getX() + "," + tc.getModules().get(i).getA().getY() + ") - " + "(" + tc.getModules().get(i).getB().getX() + "," + tc.getModules().get(i).getB().getY() + ")"; result += "</td>"; result += "</tr>"; } result += "</table>"; result += "</html>"; return result; }
private void parseRect() { // Список символов List<List<Dot>> dotvv = new ArrayList<List<Dot>>(); for (int i = 0; i < tc.getSymbols().size(); i++) { List<Dot> dotv = new ArrayList<Dot>(); // Список определений символов // Нарисовать элементы Symbol // Нарисовать строки из полей Field for (int j = 0; j < tc.getSymbols().get(i).getField2s().size(); j++) { if (tc.getSymbols().get(i).getField2s().get(j).getShow() == 1) { Dot dd1 = new Dot( (tc.getSymbols().get(i).getPos().getX() + tc.getSymbols().get(i).getField2s().get(j).getPos().getX()), (tc.getSymbols().get(i).getPos().getY() + tc.getSymbols().get(i).getField2s().get(j).getPos().getY())); dotv.add(dd1); if (ModelDSN.debug >= 2) System.out.println("0.Added x-" + dd1.getX() + ", y-" + dd1.getY()); } } for (int j = 0; j < tc.getSymbolDefs().size(); j++) { if (tc.getSymbols().get(i).getId() == tc.getSymbolDefs().get(j).getId()) { // Координаты правого нижнего угла for (int k = 0; k < tc.getSymbolDefs().get(j).getTinyCadSymbol().getRectangles().size(); k++) { Dot dd1 = new Dot( tc.getSymbols().get(i).getPos().getX() + tc.getSymbolDefs() .get(j) .getTinyCadSymbol() .getRectangles() .get(k) .getA() .getX(), tc.getSymbols().get(i).getPos().getY() + tc.getSymbolDefs() .get(j) .getTinyCadSymbol() .getRectangles() .get(k) .getA() .getY()); Dot dd2 = new Dot( tc.getSymbols().get(i).getPos().getX() + tc.getSymbolDefs() .get(j) .getTinyCadSymbol() .getRectangles() .get(k) .getB() .getX(), tc.getSymbols().get(i).getPos().getY() + tc.getSymbolDefs() .get(j) .getTinyCadSymbol() .getRectangles() .get(k) .getB() .getY()); dotv.add(dd1); dotv.add(dd2); } // Наристовать строки for (int k = 0; k < tc.getSymbolDefs().get(j).getTinyCadSymbol().getTexts().size(); k++) { Dot dd1 = new Dot( tc.getSymbols().get(i).getPos().getX() + tc.getSymbolDefs() .get(j) .getTinyCadSymbol() .getTexts() .get(k) .getDp() .getX(), tc.getSymbols().get(i).getPos().getY() + tc.getSymbolDefs() .get(j) .getTinyCadSymbol() .getTexts() .get(k) .getDp() .getY()); Dot dd2 = new Dot( tc.getSymbols().get(i).getPos().getX() + tc.getSymbolDefs() .get(j) .getTinyCadSymbol() .getTexts() .get(k) .getDp() .getX() + tc.getSymbolDefs() .get(j) .getTinyCadSymbol() .getTexts() .get(k) .getStr() .length(), tc.getSymbols().get(i).getPos().getY() + tc.getSymbolDefs() .get(j) .getTinyCadSymbol() .getTexts() .get(k) .getDp() .getY() + 3); if (ModelDSN.debug >= 2) System.out.println("1.Added x-" + dd1.getX() + ", y-" + dd1.getY()); if (ModelDSN.debug >= 2) System.out.println("2.Added x-" + dd2.getX() + ", y-" + dd2.getY()); if (ModelDSN.debug >= 1) System.out.println( "Str - " + tc.getSymbolDefs().get(j).getTinyCadSymbol().getTexts().get(k).getStr()); dotv.add(dd1); dotv.add(dd2); } // Нарисовать круги for (int k = 0; k < tc.getSymbolDefs().get(j).getTinyCadSymbol().getEllipses().size(); k++) { int x1 = Math.round( (tc.getSymbols().get(i).getPos().getX() + tc.getSymbolDefs() .get(j) .getTinyCadSymbol() .getEllipses() .get(k) .getA() .getX())); int y1 = Math.round( (tc.getSymbols().get(i).getPos().getY() + tc.getSymbolDefs() .get(j) .getTinyCadSymbol() .getEllipses() .get(k) .getA() .getY())); int x2 = Math.round( (tc.getSymbols().get(i).getPos().getX() + tc.getSymbolDefs() .get(j) .getTinyCadSymbol() .getEllipses() .get(k) .getB() .getX())); int y2 = Math.round( (tc.getSymbols().get(i).getPos().getY() + tc.getSymbolDefs() .get(j) .getTinyCadSymbol() .getEllipses() .get(k) .getB() .getY())); Dot dd1 = new Dot(Math.min(x1, x2), Math.min(y1, y2)); Dot dd2 = new Dot( Math.min(x1, x2) + (Math.max(x1, x2) - Math.min(x1, x2)), Math.min(y1, y2) + (Math.max(y1, y2) - Math.min(y1, y2))); dotv.add(dd1); dotv.add(dd2); } // Нарисовать POLYGON линии for (int k = 0; k < tc.getSymbolDefs().get(j).getTinyCadSymbol().getPolygons().size(); k++) { Pos dp = tc.getSymbolDefs().get(j).getTinyCadSymbol().getPolygons().get(k).getDp(); for (int l = 0; l < tc.getSymbolDefs() .get(j) .getTinyCadSymbol() .getPolygons() .get(k) .getDpointv() .size(); l++) { Dot dd1 = new Dot( tc.getSymbols().get(i).getPos().getX() + dp.getX(), tc.getSymbols().get(i).getPos().getY() + dp.getY()); Dot dd2 = new Dot( tc.getSymbols().get(i).getPos().getX() + dp.getX() + tc.getSymbolDefs() .get(j) .getTinyCadSymbol() .getPolygons() .get(k) .getDpointv() .get(l) .getDp() .getX(), tc.getSymbols().get(i).getPos().getY() + dp.getY() + tc.getSymbolDefs() .get(j) .getTinyCadSymbol() .getPolygons() .get(k) .getDpointv() .get(l) .getDp() .getY()); dotv.add(dd1); dotv.add(dd2); } } } } dotvv.add(dotv); } // Отсортировать список dotvv по координатам x for (int i = 0; i < dotvv.size(); i++) { Collections.sort(dotvv.get(i), new DotXComparator()); tc.getModules() .add( new Module( new Dot(dotvv.get(i).get(0).getX(), 0), new Dot(dotvv.get(i).get(dotvv.get(i).size() - 1).getX(), 0))); } // Отсортировать список dotvv по координатам y for (int i = 0; i < dotvv.size(); i++) { Collections.sort(dotvv.get(i), new DotYComparator()); String val = "No name"; List<Field2> allFields = new ArrayList<Field2>(); for (int j = 0; j < tc.getSymbols().get(i).getField2s().size(); j++) { if (tc.getSymbols().get(i).getField2s().get(j).getDescription().equals("Ref")) { val = tc.getSymbols().get(i).getField2s().get(j).getValue(); } allFields.add(tc.getSymbols().get(i).getField2s().get(j)); } tc.getModules() .set( i, new Module( new Dot(tc.getModules().get(i).getA().getX(), dotvv.get(i).get(0).getY()), new Dot( tc.getModules().get(i).getB().getX(), dotvv.get(i).get(dotvv.get(i).size() - 1).getY()), val, allFields)); if (ModelDSN.debug >= 2) { System.out.println( "X1-" + tc.getModules().get(i).getA().getX() + ", Y1-" + tc.getModules().get(i).getA().getX() + ", X2-" + tc.getModules().get(i).getB().getX() + ", Y2-" + tc.getModules().get(i).getB().getY()); } } }