use of org.concord.energy3d.undo.RemoveMultiplePartsCommand in project energy3d by concord-consortium.
the class Scene method removeAllParabolicTroughs.
public void removeAllParabolicTroughs() {
final ArrayList<HousePart> troughs = new ArrayList<HousePart>();
final HousePart selectedPart = SceneManager.getInstance().getSelectedPart();
if (selectedPart != null) {
final Foundation foundation = selectedPart instanceof Foundation ? (Foundation) selectedPart : selectedPart.getTopContainer();
for (final HousePart part : parts) {
if (part instanceof ParabolicTrough && part.getTopContainer() == foundation) {
troughs.add(part);
}
}
} else {
for (final HousePart part : parts) {
if (part instanceof ParabolicTrough) {
troughs.add(part);
}
}
}
if (troughs.isEmpty()) {
JOptionPane.showMessageDialog(MainFrame.getInstance(), "There is no parabolic trough to remove.", "No Parabolic Trough", JOptionPane.INFORMATION_MESSAGE);
return;
}
if (JOptionPane.showConfirmDialog(MainFrame.getInstance(), "Do you really want to remove all " + troughs.size() + " parabolic troughs" + (selectedPart != null ? " on the selected foundation" : "") + "?", "Confirm", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE) != JOptionPane.YES_OPTION) {
return;
}
final RemoveMultiplePartsCommand c = new RemoveMultiplePartsCommand(troughs);
for (final HousePart part : troughs) {
remove(part, false);
}
redrawAll();
SceneManager.getInstance().getUndoManager().addEdit(c);
edited = true;
}
use of org.concord.energy3d.undo.RemoveMultiplePartsCommand in project energy3d by concord-consortium.
the class Scene method removeAllSolarPanels.
public void removeAllSolarPanels(List<SolarPanel> panels) {
final HousePart selectedPart = SceneManager.getInstance().getSelectedPart();
if (panels == null) {
panels = new ArrayList<SolarPanel>();
if (selectedPart != null) {
if (selectedPart instanceof Rack) {
for (final HousePart part : selectedPart.getChildren()) {
if (part instanceof SolarPanel) {
panels.add((SolarPanel) part);
}
}
} else {
final Foundation foundation = selectedPart instanceof Foundation ? (Foundation) selectedPart : selectedPart.getTopContainer();
for (final HousePart part : parts) {
if (part instanceof SolarPanel && part.getTopContainer() == foundation) {
panels.add((SolarPanel) part);
}
}
}
} else {
for (final HousePart part : parts) {
if (part instanceof SolarPanel) {
panels.add((SolarPanel) part);
}
}
}
}
if (panels.isEmpty()) {
JOptionPane.showMessageDialog(MainFrame.getInstance(), "There is no solar panel to remove.", "No Solar Panel", JOptionPane.INFORMATION_MESSAGE);
return;
}
if (JOptionPane.showConfirmDialog(MainFrame.getInstance(), "Do you really want to remove all " + panels.size() + " solar panels" + (selectedPart != null ? " of the selected building" : "") + "?", "Confirm", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE) != JOptionPane.YES_OPTION) {
return;
}
final RemoveMultiplePartsCommand c = new RemoveMultiplePartsCommand(new ArrayList<HousePart>(panels));
for (final HousePart part : panels) {
remove(part, false);
}
redrawAll();
SceneManager.getInstance().getUndoManager().addEdit(c);
edited = true;
}
Aggregations