use of org.concord.energy3d.model.HousePart in project energy3d by concord-consortium.
the class Scene method setMonthlyTiltAnglesForAllRacks.
public void setMonthlyTiltAnglesForAllRacks(final double[] angles) {
for (final HousePart p : parts) {
if (p instanceof Rack) {
((Rack) p).setMonthlyTiltAngles(angles);
p.draw();
}
}
SceneManager.getInstance().refresh();
}
use of org.concord.energy3d.model.HousePart in project energy3d by concord-consortium.
the class Scene method removeAllFoundations.
public void removeAllFoundations() {
final ArrayList<HousePart> foundations = new ArrayList<HousePart>();
for (final HousePart part : parts) {
if (part instanceof Foundation && !part.getLockEdit()) {
foundations.add(part);
}
}
if (foundations.isEmpty()) {
JOptionPane.showMessageDialog(MainFrame.getInstance(), "There is no activated foundation to remove.", "No Foundation", JOptionPane.INFORMATION_MESSAGE);
return;
}
if (JOptionPane.showConfirmDialog(MainFrame.getInstance(), "Do you really want to remove all " + foundations.size() + " foundations?", "Confirm", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE) != JOptionPane.YES_OPTION) {
return;
}
final RemoveMultiplePartsCommand c = new RemoveMultiplePartsCommand(foundations);
for (final HousePart part : foundations) {
remove(part, false);
}
redrawAll();
SceneManager.getInstance().getUndoManager().addEdit(c);
edited = true;
}
use of org.concord.energy3d.model.HousePart in project energy3d by concord-consortium.
the class Scene method setAzimuthForAllParabolicTroughs.
public void setAzimuthForAllParabolicTroughs(final double angle) {
for (final HousePart p : parts) {
if (p instanceof ParabolicTrough) {
((ParabolicTrough) p).setRelativeAzimuth(angle);
p.draw();
}
}
SceneManager.getInstance().refresh();
}
use of org.concord.energy3d.model.HousePart in project energy3d by concord-consortium.
the class Scene method fixProblems.
/**
* This can be used by the user to fix problems that are caused by bugs based on our observations. This is different than cleanup() as the latter cannot be used to remove undrawables.
*/
public void fixProblems(final boolean redraw) {
// remove all undrawables
final ArrayList<HousePart> a = new ArrayList<HousePart>();
for (final HousePart p : parts) {
if (!p.isDrawable()) {
a.add(p);
}
}
for (final HousePart p : a) {
remove(p, false);
}
a.clear();
cleanup();
if (redraw) {
redrawAll(true);
}
}
use of org.concord.energy3d.model.HousePart in project energy3d by concord-consortium.
the class Scene method removeAllParabolicDishes.
public void removeAllParabolicDishes() {
final ArrayList<HousePart> dishes = 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 ParabolicDish && part.getTopContainer() == foundation) {
dishes.add(part);
}
}
} else {
for (final HousePart part : parts) {
if (part instanceof ParabolicDish) {
dishes.add(part);
}
}
}
if (dishes.isEmpty()) {
JOptionPane.showMessageDialog(MainFrame.getInstance(), "There is no parabolic dish to remove.", "No Parabolic Dish", JOptionPane.INFORMATION_MESSAGE);
return;
}
if (JOptionPane.showConfirmDialog(MainFrame.getInstance(), "Do you really want to remove all " + dishes.size() + " parabolic dishes" + (selectedPart != null ? " on the selected foundation" : "") + "?", "Confirm", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE) != JOptionPane.YES_OPTION) {
return;
}
final RemoveMultiplePartsCommand c = new RemoveMultiplePartsCommand(dishes);
for (final HousePart part : dishes) {
remove(part, false);
}
redrawAll();
SceneManager.getInstance().getUndoManager().addEdit(c);
edited = true;
}
Aggregations