use of com.willwinder.ugs.nbp.designer.entities.Entity in project Universal-G-Code-Sender by winder.
the class MoveControl method addUndoAction.
private void addUndoAction(Point2D deltaMovement, Entity target) {
UndoManager undoManager = CentralLookup.getDefault().lookup(UndoManager.class);
if (undoManager != null) {
List<Entity> entityList = new ArrayList<>();
if (target instanceof SelectionManager) {
entityList.addAll(((SelectionManager) target).getSelection());
} else {
entityList.add(target);
}
undoManager.addAction(new MoveAction(entityList, deltaMovement));
}
}
use of com.willwinder.ugs.nbp.designer.entities.Entity in project Universal-G-Code-Sender by winder.
the class EntityTreeUtils method getSelectedPaths.
public static List<TreePath> getSelectedPaths(Controller controller, Entity entity, List<Entity> currentTreePath) {
ArrayList<TreePath> result = new ArrayList<>();
if (controller.getSelectionManager().isSelected(entity)) {
List<Entity> entities = new ArrayList<>(currentTreePath);
entities.add(entity);
result.add(new TreePath(entities.toArray(new Entity[0])));
}
if (entity instanceof EntityGroup) {
List<Entity> newCurrentTreePath = new ArrayList<>(currentTreePath);
newCurrentTreePath.add(entity);
result.addAll(((EntityGroup) entity).getChildren().stream().flatMap(e -> getSelectedPaths(controller, e, newCurrentTreePath).stream()).collect(Collectors.toList()));
}
return result;
}
use of com.willwinder.ugs.nbp.designer.entities.Entity in project Universal-G-Code-Sender by winder.
the class DesignV1 method toInternal.
public Design toInternal() {
Design design = new Design();
if (entities != null) {
List<Entity> entities = getEntities().stream().filter(Objects::nonNull).map(EntityV1::toInternal).collect(Collectors.toList());
design.setEntities(entities);
}
design.setSettings(settings.toInternal());
return design;
}
use of com.willwinder.ugs.nbp.designer.entities.Entity in project Universal-G-Code-Sender by winder.
the class MultiplyDialog method stateChanged.
@Override
public void stateChanged(ChangeEvent e) {
entityGroup.removeAll();
EntityGroup selection = new EntityGroup();
selection.addAll(controller.getSelectionManager().getSelection().stream().map(Entity::copy).collect(Collectors.toList()));
for (int x = 0; x < (int) xCountSpinner.getValue(); x++) {
for (int y = 0; y < (int) yCountSpinner.getValue(); y++) {
if (x >= 1 || y >= 1) {
EntityGroup clone = (EntityGroup) selection.copy();
Point2D position = clone.getPosition();
double newX = position.getX() + (x * clone.getSize().getWidth()) + (x * (int) xSpacingSpinner.getValue());
double newY = position.getY() + (y * clone.getSize().getHeight()) + (y * (int) ySpacingSpinner.getValue());
clone.setPosition(new Point2D.Double(newX, newY));
entityGroup.addAll(clone.getChildren());
}
}
}
controller.getDrawing().repaint();
}
use of com.willwinder.ugs.nbp.designer.entities.Entity in project Universal-G-Code-Sender by winder.
the class SelectionSettingsPanel method changedUpdate.
@Override
public void changedUpdate(DocumentEvent e) {
controller.getSelectionManager().removeListener(this);
if (StringUtils.isNotEmpty(rotation.getText()) && e.getDocument() == rotation.getDocument()) {
try {
double angle = Utils.parseDouble(rotation.getText());
controller.getSelectionManager().setRotation(angle);
controller.getDrawing().repaint();
} catch (NumberFormatException ex) {
// never mind
}
}
if (StringUtils.isNotEmpty(posXTextField.getText()) && StringUtils.isNotEmpty(posYTextField.getText()) && (e.getDocument() == posXTextField.getDocument() || e.getDocument() == posYTextField.getDocument())) {
double x = Utils.parseDouble(posXTextField.getText());
double y = Utils.parseDouble(posYTextField.getText());
Point2D position = controller.getSelectionManager().getPosition(anchor);
position.setLocation(x - position.getX(), y - position.getY());
controller.getSelectionManager().move(position);
controller.getDrawing().repaint();
}
if (StringUtils.isNotEmpty(widthTextField.getText()) && StringUtils.isNotEmpty(heightTextField.getText()) && (e.getDocument() == widthTextField.getDocument() || e.getDocument() == heightTextField.getDocument())) {
try {
double width = Utils.parseDouble(widthTextField.getText());
double height = Utils.parseDouble(heightTextField.getText());
if (width <= 0 || height <= 0) {
return;
}
if (!lockRatioButton.isSelected()) {
double ratio = controller.getSelectionManager().getSize().getRatio();
if (e.getDocument() == widthTextField.getDocument()) {
height = width / ratio;
setFieldValue(heightTextField, Utils.toString(height));
} else {
width = height * ratio;
setFieldValue(widthTextField, Utils.toString(width));
}
}
controller.getSelectionManager().setSize(new Size(width, height));
controller.getDrawing().repaint();
} catch (NumberFormatException ex) {
// never mind
}
}
if (!controller.getSelectionManager().isEmpty()) {
Entity entity = controller.getSelectionManager().getSelection().get(0);
if (entity instanceof Text) {
((Text) entity).setText(textTextField.getText());
((Text) entity).setFontFamily((String) fontDropDown.getSelectedItem());
}
controller.getDrawing().repaint();
}
controller.getSelectionManager().addListener(this);
}
Aggregations