mirror of
https://github.com/bancika/diy-layout-creator
synced 2026-11-13 02:32:09 +10:00
phase 1
This commit is contained in:
@@ -26,6 +26,7 @@ import java.awt.Graphics2D;
|
||||
import java.awt.Shape;
|
||||
import java.awt.geom.Point2D;
|
||||
|
||||
import org.diylc.common.PCBLayer;
|
||||
import org.diylc.components.transform.AbstractBoardTransformer;
|
||||
import org.diylc.core.ComponentState;
|
||||
import org.diylc.core.IDIYComponent;
|
||||
@@ -81,10 +82,12 @@ public class PerfBoard extends AbstractBoard implements ILayeredComponent {
|
||||
y += spacing;
|
||||
while (x < finalSecondPoint.getX() - spacing - diameter) {
|
||||
x += spacing;
|
||||
drawingObserver.startDrawingSide(PCBLayer._1);
|
||||
g2d.setColor(padColor);
|
||||
g2d.fillOval((int)(x - diameter / 2), (int)(y - diameter / 2), diameter, diameter);
|
||||
g2d.setColor(padColor.darker());
|
||||
g2d.drawOval((int)(x - diameter / 2), (int)(y - diameter / 2), diameter, diameter);
|
||||
drawingObserver.stopDrawingSide();
|
||||
g2d.setColor(Constants.CANVAS_COLOR);
|
||||
g2d.fillOval((int)(x - holeDiameter / 2), (int)(y - holeDiameter / 2), holeDiameter, holeDiameter);
|
||||
g2d.setColor(padColor.darker());
|
||||
|
||||
@@ -31,6 +31,7 @@ import java.awt.geom.Rectangle2D;
|
||||
import org.diylc.awt.StringUtils;
|
||||
import org.diylc.common.HorizontalAlignment;
|
||||
import org.diylc.common.ObjectCache;
|
||||
import org.diylc.common.PCBLayer;
|
||||
import org.diylc.common.VerticalAlignment;
|
||||
import org.diylc.components.transform.ProtoBoardTransformer;
|
||||
import org.diylc.core.ComponentState;
|
||||
@@ -169,6 +170,7 @@ public class ProtoBoard extends AbstractProtoBoard {
|
||||
(int) (point.getX() + (1 + SEGMENTS_SUM[3] + 2.5) * spacing), (int) (point.getY() + (yOffset + y - 0.25d) * spacing + 1));
|
||||
}
|
||||
|
||||
drawingObserver.startDrawingSide(PCBLayer._1);
|
||||
g2d.setColor(undersideTraceColor);
|
||||
|
||||
// bottom row.
|
||||
@@ -182,6 +184,7 @@ public class ProtoBoard extends AbstractProtoBoard {
|
||||
// vertical ground line
|
||||
g2d.drawLine((int) (point.getX() + (1 + SEGMENTS_SUM[3] + 1.5) * spacing), (int) (point.getY() + (yOffset - 1.5) * spacing),
|
||||
(int) (point.getX() + (1 + SEGMENTS_SUM[3] + 1.5) * spacing), (int) (point.getY() + (yOffset + ROW_COUNT + 0.5) * spacing));
|
||||
drawingObserver.stopDrawingSide();
|
||||
|
||||
g2d.setColor(traceColor);
|
||||
|
||||
@@ -494,6 +497,7 @@ public class ProtoBoard extends AbstractProtoBoard {
|
||||
g2d.drawRect((int) (point.getX() + (1 + SEGMENTS_SUM[3] + 0.5) * spacing) + 1, (int) (point.getY() + (yOffset + y - 0.5d) * spacing + 2), miniPadSize, miniPadSize);
|
||||
g2d.drawRect((int) (point.getX() + (1 + SEGMENTS_SUM[3] + 0.5) * spacing) + miniPadSize + 3, (int) (point.getY() + (yOffset + y - 0.5d) * spacing + 2), miniPadSize, miniPadSize);
|
||||
|
||||
drawingObserver.startDrawingSide(PCBLayer._1);
|
||||
g2d.setColor(undersidePadColor);
|
||||
|
||||
drawingObserver.startTrackingContinuityArea(true);
|
||||
@@ -507,15 +511,18 @@ public class ProtoBoard extends AbstractProtoBoard {
|
||||
g2d.fillRect((int) (point.getX() + (1 + SEGMENTS_SUM[3] + 1.5) * spacing) + miniPadSize / 2 + 3, (int) (point.getY() + (yOffset + y + 0.5d) * spacing - 1 - miniPadSize), miniPadSize, miniPadSize);
|
||||
|
||||
drawingObserver.stopTrackingContinuityArea();
|
||||
drawingObserver.stopDrawingSide();
|
||||
|
||||
g2d.setColor(undersidePadColor.darker());
|
||||
|
||||
g2d.drawRect((int) (point.getX() + (1 + SEGMENTS_SUM[3] + 1.5) * spacing) + 3, (int) (point.getY() + (yOffset + y - 0.5d) * spacing + 2), miniPadSize, miniPadSize);
|
||||
g2d.drawRect((int) (point.getX() + (1 + SEGMENTS_SUM[3] + 1.5) * spacing) + miniPadSize + 5, (int) (point.getY() + (yOffset + y - 0.5d) * spacing + 2), miniPadSize, miniPadSize);
|
||||
|
||||
drawingObserver.startDrawingSide(PCBLayer._1);
|
||||
g2d.drawRect((int) (point.getX() + (1 + SEGMENTS_SUM[3] + 1.5) * spacing) - miniPadSize / 2, (int) (point.getY() + (yOffset + y + 0.5d) * spacing - 1 - miniPadSize), miniPadSize, miniPadSize);
|
||||
g2d.drawRect((int) (point.getX() + (1 + SEGMENTS_SUM[3] + 1.5) * spacing) - miniPadSize * 3 / 2 - 2, (int) (point.getY() + (yOffset + y + 0.5d) * spacing - 1 - miniPadSize), miniPadSize, miniPadSize);
|
||||
g2d.drawRect((int) (point.getX() + (1 + SEGMENTS_SUM[3] + 1.5) * spacing) + miniPadSize / 2 + 3, (int) (point.getY() + (yOffset + y + 0.5d) * spacing - 1 - miniPadSize), miniPadSize, miniPadSize);
|
||||
drawingObserver.stopDrawingSide();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@ import java.awt.geom.Rectangle2D;
|
||||
import org.diylc.awt.StringUtils;
|
||||
import org.diylc.common.HorizontalAlignment;
|
||||
import org.diylc.common.ObjectCache;
|
||||
import org.diylc.common.PCBLayer;
|
||||
import org.diylc.common.VerticalAlignment;
|
||||
import org.diylc.components.transform.ProtoBoardTransformer;
|
||||
import org.diylc.core.ComponentState;
|
||||
@@ -151,14 +152,17 @@ public class ProtoBoard780 extends AbstractProtoBoard {
|
||||
|
||||
g2d.setColor(traceColor);
|
||||
int padX = (int) Math.round(point.getX() + width / 2 - 7 * spacing + i * spacing);
|
||||
drawingObserver.startDrawingSide(PCBLayer._1);
|
||||
drawingObserver.startTrackingContinuityArea(true);
|
||||
g2d.drawLine(padX, (int) Math.round(point.getY() + offsetY), padX,
|
||||
(int) Math.round(point.getY() + spacing + offsetY));
|
||||
drawingObserver.stopTrackingContinuityArea();
|
||||
drawingObserver.stopDrawingSide();
|
||||
|
||||
for (int j = 0; j < 2; j++) {
|
||||
int padY = (int) Math.round(point.getY() + spacing * j + offsetY);
|
||||
|
||||
drawingObserver.startDrawingSide(PCBLayer._1);
|
||||
g2d.setColor(padColor);
|
||||
|
||||
drawingObserver.startTrackingContinuityArea(true);
|
||||
@@ -171,6 +175,7 @@ public class ProtoBoard780 extends AbstractProtoBoard {
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1f));
|
||||
|
||||
g2d.drawOval(padX - padSize / 2, padY - padSize / 2, padSize, padSize);
|
||||
drawingObserver.stopDrawingSide();
|
||||
|
||||
g2d.setColor(HOLE_COLOR);
|
||||
g2d.fillOval(padX - holeSize / 2, padY - holeSize / 2, holeSize, holeSize);
|
||||
@@ -196,6 +201,7 @@ public class ProtoBoard780 extends AbstractProtoBoard {
|
||||
offsetY = spacing * 5.5;
|
||||
|
||||
// draw 3-pad traces and vertical traces
|
||||
drawingObserver.startDrawingSide(PCBLayer._1);
|
||||
drawingObserver.startTrackingContinuityArea(true);
|
||||
g2d.setColor(traceColor);
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(padSize - 2f));
|
||||
@@ -239,6 +245,7 @@ public class ProtoBoard780 extends AbstractProtoBoard {
|
||||
}
|
||||
}
|
||||
drawingObserver.stopTrackingContinuityArea();
|
||||
drawingObserver.stopDrawingSide();
|
||||
|
||||
// draw main pads
|
||||
for (int i = 0; i < 25; i++) {
|
||||
@@ -254,6 +261,7 @@ public class ProtoBoard780 extends AbstractProtoBoard {
|
||||
for (int j = 0; j < 30; j++) {
|
||||
int padY = (int) Math.round(point.getY() + spacing * j + offsetY);
|
||||
|
||||
drawingObserver.startDrawingSide(PCBLayer._1);
|
||||
g2d.setColor(padColor);
|
||||
|
||||
drawingObserver.startTrackingContinuityArea(true);
|
||||
@@ -266,6 +274,7 @@ public class ProtoBoard780 extends AbstractProtoBoard {
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1f));
|
||||
|
||||
g2d.drawOval(padX - padSize / 2, padY - padSize / 2, padSize, padSize);
|
||||
drawingObserver.stopDrawingSide();
|
||||
|
||||
g2d.setColor(HOLE_COLOR);
|
||||
g2d.fillOval(padX - holeSize / 2, padY - holeSize / 2, holeSize, holeSize);
|
||||
|
||||
@@ -28,6 +28,7 @@ import java.awt.Shape;
|
||||
import java.awt.geom.Point2D;
|
||||
|
||||
import org.diylc.common.OrientationHV;
|
||||
import org.diylc.common.PCBLayer;
|
||||
import org.diylc.components.transform.VeroBoardTransformer;
|
||||
import org.diylc.core.ComponentState;
|
||||
import org.diylc.core.IDIYComponent;
|
||||
@@ -85,6 +86,7 @@ public class TriPadBoard extends AbstractVeroBoard implements ILayeredComponent
|
||||
spacesToDraw = (remainingSpace - stripSize) / spacing;
|
||||
}
|
||||
|
||||
drawingObserver.startDrawingSide(PCBLayer._1);
|
||||
g2d.setColor(stripColor);
|
||||
drawingObserver.startTrackingContinuityArea(true);
|
||||
g2d.fillRect((int)(x + spacing - stripSize / 2), (int)(y - stripSize / 2), (int)(spacing * (spacesToDraw - 1) + stripSize),
|
||||
@@ -94,6 +96,7 @@ public class TriPadBoard extends AbstractVeroBoard implements ILayeredComponent
|
||||
|
||||
g2d.drawRect((int)(x + spacing - stripSize / 2), (int)(y - stripSize / 2), (int)(spacing * (spacesToDraw - 1) + stripSize),
|
||||
stripSize);
|
||||
drawingObserver.stopDrawingSide();
|
||||
|
||||
x += spacing * spacesToDraw;
|
||||
}
|
||||
@@ -123,6 +126,7 @@ public class TriPadBoard extends AbstractVeroBoard implements ILayeredComponent
|
||||
spacesToDraw = (remainingSpace - stripSize) / spacing;
|
||||
}
|
||||
|
||||
drawingObserver.startDrawingSide(PCBLayer._1);
|
||||
g2d.setColor(stripColor);
|
||||
drawingObserver.startTrackingContinuityArea(true);
|
||||
g2d.fillRect((int)(x - stripSize / 2), (int)(y + spacing - stripSize / 2), stripSize, (int)(spacing * (spacesToDraw - 1)
|
||||
@@ -131,6 +135,7 @@ public class TriPadBoard extends AbstractVeroBoard implements ILayeredComponent
|
||||
g2d.setColor(stripColor.darker());
|
||||
g2d.drawRect((int)(x - stripSize / 2), (int)(y + spacing - stripSize / 2), stripSize, (int)(spacing * (spacesToDraw - 1)
|
||||
+ stripSize));
|
||||
drawingObserver.stopDrawingSide();
|
||||
|
||||
y += spacing * spacesToDraw;
|
||||
}
|
||||
|
||||
@@ -28,6 +28,7 @@ import java.awt.Shape;
|
||||
import java.awt.geom.Point2D;
|
||||
|
||||
import org.diylc.common.OrientationHV;
|
||||
import org.diylc.common.PCBLayer;
|
||||
import org.diylc.components.transform.VeroBoardTransformer;
|
||||
import org.diylc.core.ComponentState;
|
||||
import org.diylc.core.IDIYComponent;
|
||||
@@ -74,12 +75,14 @@ public class VeroBoard extends AbstractVeroBoard implements ILayeredComponent {
|
||||
while (y < finalSecondPoint.getY() - spacing - stripSize / 2) {
|
||||
x = firstPoint.getX();
|
||||
y += spacing;
|
||||
drawingObserver.startDrawingSide(PCBLayer._1);
|
||||
g2d.setColor(stripColor);
|
||||
drawingObserver.startTrackingContinuityArea(true);
|
||||
g2d.fillRect((int)(x + spacing / 2), (int)(y - stripSize / 2), (int) Math.round(finalSecondPoint.getX() - spacing - x), stripSize);
|
||||
drawingObserver.stopTrackingContinuityArea();
|
||||
g2d.setColor(stripColor.darker());
|
||||
g2d.drawRect((int)(x + spacing / 2), (int)(y - stripSize / 2), (int) Math.round(finalSecondPoint.getX() - spacing - x), stripSize);
|
||||
drawingObserver.stopDrawingSide();
|
||||
while (x < finalSecondPoint.getX() - spacing - holeSize) {
|
||||
x += spacing;
|
||||
g2d.setColor(Constants.CANVAS_COLOR);
|
||||
@@ -92,12 +95,14 @@ public class VeroBoard extends AbstractVeroBoard implements ILayeredComponent {
|
||||
while (x < finalSecondPoint.getX() - spacing) {
|
||||
x += spacing;
|
||||
y = firstPoint.getY();
|
||||
drawingObserver.startDrawingSide(PCBLayer._1);
|
||||
g2d.setColor(stripColor);
|
||||
drawingObserver.startTrackingContinuityArea(true);
|
||||
g2d.fillRect((int)(x - stripSize / 2), (int)(y + spacing / 2), stripSize, (int) Math.round(finalSecondPoint.getY() - spacing - y));
|
||||
drawingObserver.stopTrackingContinuityArea();
|
||||
g2d.setColor(stripColor.darker());
|
||||
g2d.drawRect((int)(x - stripSize / 2), (int)(y + spacing / 2), stripSize, (int) Math.round(finalSecondPoint.getY() - spacing - y));
|
||||
drawingObserver.stopDrawingSide();
|
||||
while (y < finalSecondPoint.getY() - spacing - holeSize) {
|
||||
y += spacing;
|
||||
g2d.setColor(Constants.CANVAS_COLOR);
|
||||
|
||||
@@ -34,7 +34,9 @@ import org.diylc.core.ComponentState;
|
||||
import org.diylc.core.CreationMethod;
|
||||
import org.diylc.core.IConnective;
|
||||
import org.diylc.core.IDIYComponent;
|
||||
import org.diylc.core.IDrawingObserver;
|
||||
import org.diylc.core.ILayeredComponent;
|
||||
import org.diylc.core.Project;
|
||||
import org.diylc.core.VisibilityPolicy;
|
||||
import org.diylc.core.annotations.AiNote.Scope;
|
||||
import org.diylc.core.annotations.AiNote;
|
||||
@@ -72,6 +74,14 @@ public class CopperTrace extends AbstractLeadedComponent<Void> implements IConne
|
||||
this.leadColor = COLOR;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode,
|
||||
Project project, IDrawingObserver drawingObserver) {
|
||||
drawingObserver.startDrawingSide(getLayer());
|
||||
super.draw(g2d, componentState, outlineMode, project, drawingObserver);
|
||||
drawingObserver.stopDrawingSide();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drawIcon(Graphics2D g2d, int width, int height) {
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(3));
|
||||
|
||||
@@ -87,9 +87,11 @@ public class CurvedTrace extends AbstractCurvedComponent<Void> implements IConne
|
||||
componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR
|
||||
: color;
|
||||
g2d.setColor(curveColor);
|
||||
drawingObserver.startDrawingSide(getLayer());
|
||||
drawingObserver.startTrackingContinuityArea(true);
|
||||
g2d.draw(curve);
|
||||
drawingObserver.stopTrackingContinuityArea();
|
||||
drawingObserver.stopDrawingSide();
|
||||
}
|
||||
|
||||
@EditableProperty(name = "Width")
|
||||
|
||||
@@ -83,11 +83,13 @@ public class GroundFill extends AbstractTransparentComponent<Void>
|
||||
xPoints[i] = (int)controlPoints[i].getX();
|
||||
yPoints[i] = (int)controlPoints[i].getY();
|
||||
}
|
||||
drawingObserver.startDrawingSide(getLayer());
|
||||
drawingObserver.startTrackingContinuityArea(true);
|
||||
Composite oldComposite = applyAlpha(g2d, componentState);
|
||||
g2d.fillPolygon(xPoints, yPoints, controlPoints.length);
|
||||
g2d.setComposite(oldComposite);
|
||||
drawingObserver.stopTrackingContinuityArea();
|
||||
drawingObserver.stopDrawingSide();
|
||||
// Do not track any changes that follow because the whole board has been
|
||||
// tracked so far.
|
||||
drawingObserver.stopTracking();
|
||||
|
||||
@@ -97,6 +97,7 @@ public class SolderPad extends AbstractTransparentComponent<Void>
|
||||
gerberDrawingObserver.startGerberOutput(org.diylc.core.gerber.GerberLayer.SolderMaskBot, "Material", false);
|
||||
}
|
||||
Composite oldComposite = applyAlpha(g2d, componentState);
|
||||
drawingObserver.startDrawingSide(getLayer());
|
||||
|
||||
if (type == Type.ROUND) {
|
||||
g2d.fill(new Ellipse2D.Double(point.getX() - diameter / 2, point.getY() - diameter / 2,
|
||||
@@ -111,6 +112,7 @@ public class SolderPad extends AbstractTransparentComponent<Void>
|
||||
g2d.fill(new Rectangle2D.Double(point.getX() - diameter / 2, point.getY() - diameter / 2,
|
||||
diameter, diameter));
|
||||
}
|
||||
drawingObserver.stopDrawingSide();
|
||||
drawingObserver.stopTracking();
|
||||
drawingObserver.stopTrackingContinuityArea();
|
||||
if (gerberDrawingObserver != null)
|
||||
@@ -121,9 +123,11 @@ public class SolderPad extends AbstractTransparentComponent<Void>
|
||||
GerberLayer holeLayer = HoleType.PTH.equals(getHoleType()) ? GerberLayer.DrillPlated : GerberLayer.DrillNonPlated;
|
||||
gerberDrawingObserver.startGerberOutput(holeLayer, GerberFunctions.COMPONENT_DRILL, false);
|
||||
}
|
||||
drawingObserver.startDrawingBothSides();
|
||||
g2d.setColor(Constants.CANVAS_COLOR);
|
||||
g2d.fill(new Ellipse2D.Double(point.getX() - holeDiameter / 2,
|
||||
point.getY() - holeDiameter / 2, holeDiameter, holeDiameter));
|
||||
drawingObserver.stopDrawingSide();
|
||||
}
|
||||
g2d.setComposite(oldComposite);
|
||||
if (gerberDrawingObserver != null)
|
||||
|
||||
@@ -83,6 +83,8 @@ public class TraceCut extends AbstractTransparentComponent<Void> implements ILay
|
||||
return;
|
||||
}
|
||||
Composite oldComposite = applyAlpha(g2d, componentState);
|
||||
// the cut is what tells the user a strip is broken, so it stays crisp from either side
|
||||
drawingObserver.startDrawingBothSides();
|
||||
g2d.setStroke(ObjectCache.getInstance().fetchZoomableStroke(1f));
|
||||
int size = getClosestOdd((int) this.size.convertToPixels());
|
||||
int cutWidth = getClosestOdd((int) CUT_WIDTH.convertToPixels());
|
||||
@@ -109,6 +111,7 @@ public class TraceCut extends AbstractTransparentComponent<Void> implements ILay
|
||||
g2d.setColor(getBoardColor().darker());
|
||||
g2d.drawOval((int) Math.round(point.getX() - holeSize / 2), (int) Math.round(point.getY() - holeSize / 2), holeSize, holeSize);
|
||||
}
|
||||
drawingObserver.stopDrawingSide();
|
||||
g2d.setComposite(oldComposite);
|
||||
}
|
||||
|
||||
|
||||
@@ -156,7 +156,9 @@ public class PCBText extends AbstractComponent<Void> implements ILayeredComponen
|
||||
@Override
|
||||
public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, Project project,
|
||||
IDrawingObserver drawingObserver) {
|
||||
drawingObserver.startDrawingSide(getLayer());
|
||||
this.draw(g2d, componentState, outlineMode, project, drawingObserver, null);
|
||||
drawingObserver.stopDrawingSide();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
/*
|
||||
|
||||
DIY Layout Creator (DIYLC).
|
||||
Copyright (c) 2009-2025 held jointly by the individual authors.
|
||||
|
||||
This file is part of DIYLC.
|
||||
|
||||
DIYLC is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
DIYLC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with DIYLC. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
*/
|
||||
package org.diylc.serialization;
|
||||
|
||||
import com.thoughtworks.xstream.XStream;
|
||||
import com.thoughtworks.xstream.io.xml.DomDriver;
|
||||
|
||||
import org.diylc.common.PCBLayer;
|
||||
import org.diylc.components.connectivity.CopperTrace;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* The inner PCB layers are deprecated but must keep loading from files that use them, with their
|
||||
* layer and continuity id unchanged, because XStream resolves enum constants by name.
|
||||
*/
|
||||
public class InnerLayerCompatibilityTest {
|
||||
|
||||
private static XStream createXStream() {
|
||||
XStream xStream = new XStream(new DomDriver("UTF-8"));
|
||||
ProjectFileManager.configure(xStream);
|
||||
return xStream;
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("deprecation")
|
||||
public void innerLayerTraceLoadsUnchanged() {
|
||||
CopperTrace trace = new CopperTrace();
|
||||
trace.setLayer(PCBLayer._2);
|
||||
String xml = createXStream().toXML(trace);
|
||||
Assert.assertTrue(xml.contains("<layer>_2</layer>"));
|
||||
|
||||
CopperTrace loaded = (CopperTrace) createXStream().fromXML(xml.replace("<layer>_2</layer>", "<layer>_5</layer>"));
|
||||
Assert.assertEquals(PCBLayer._5, loaded.getLayer());
|
||||
Assert.assertEquals(5, loaded.getLayerId());
|
||||
Assert.assertTrue(createXStream().toXML(loaded).contains("<layer>_5</layer>"));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user