use of org.concord.energy3d.model.Window in project energy3d by concord-consortium.
the class MovePartCommand method move.
private void move(final Vector3 v) {
SceneManager.getInstance().setSelectedPart(part);
SceneManager.getTaskManager().update(new Callable<Object>() {
@Override
public Object call() throws Exception {
if (part == null) {
for (final HousePart p : Scene.getInstance().getParts()) {
if (p instanceof Foundation) {
((Foundation) p).move(v, p.getGridSize());
}
}
} else if (part instanceof Foundation) {
final Foundation f = (Foundation) part;
if (f.isGroupMaster()) {
final List<Foundation> g = Scene.getInstance().getFoundationGroup(f);
for (final Foundation x : g) {
x.move(v, part.getGridSize());
}
} else {
f.move(v, part.getGridSize());
}
} else if (part instanceof Window) {
final Window w = (Window) part;
w.move(v);
w.draw();
} else if (part instanceof SolarPanel) {
final SolarPanel s = (SolarPanel) part;
s.move(v, part.getGridSize());
s.draw();
} else if (part instanceof Rack) {
final Rack r = (Rack) part;
r.move(v, part.getGridSize());
r.draw();
} else if (part instanceof Mirror) {
final Mirror m = (Mirror) part;
m.move(v, part.getGridSize());
m.draw();
} else if (part instanceof ParabolicTrough) {
final ParabolicTrough t = (ParabolicTrough) part;
t.move(v, part.getGridSize());
t.draw();
} else if (part instanceof ParabolicDish) {
final ParabolicDish d = (ParabolicDish) part;
d.move(v, part.getGridSize());
d.draw();
} else if (part instanceof FresnelReflector) {
final FresnelReflector f = (FresnelReflector) part;
f.move(v, part.getGridSize());
f.draw();
}
return null;
}
});
}
use of org.concord.energy3d.model.Window in project energy3d by concord-consortium.
the class MainFrame method getDailyEnergyAnalysisForSelectionMenuItem.
private JMenuItem getDailyEnergyAnalysisForSelectionMenuItem() {
if (dailyEnergyAnalysisForSelectionMenuItem == null) {
dailyEnergyAnalysisForSelectionMenuItem = new JMenuItem("Daily Energy Analysis for Selected Part...");
dailyEnergyAnalysisForSelectionMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(final ActionEvent e) {
if (EnergyPanel.getInstance().checkCity()) {
if (EnergyPanel.getInstance().adjustCellSize()) {
return;
}
final HousePart selectedPart = SceneManager.getInstance().getSelectedPart();
if (selectedPart instanceof Window || selectedPart instanceof Wall || selectedPart instanceof Roof || selectedPart instanceof Door || selectedPart instanceof SolarPanel || selectedPart instanceof Rack || selectedPart instanceof Foundation) {
new EnergyDailyAnalysis().show("Daily Energy for Selected Part");
} else {
JOptionPane.showMessageDialog(MainFrame.this, "You must select a building part first.", "No Selection", JOptionPane.INFORMATION_MESSAGE);
}
}
}
});
}
return dailyEnergyAnalysisForSelectionMenuItem;
}
use of org.concord.energy3d.model.Window in project energy3d by concord-consortium.
the class Scene method setWindowSizeInContainer.
public void setWindowSizeInContainer(final HousePart container, final double width, final double height) {
for (final HousePart p : parts) {
if (p instanceof Window && p.getContainer() == container) {
final Window w = (Window) p;
w.setWindowWidth(width);
w.setWindowHeight(height);
w.draw();
w.getContainer().draw();
}
}
SceneManager.getInstance().refresh();
}
use of org.concord.energy3d.model.Window in project energy3d by concord-consortium.
the class Scene method removeAllWindows.
public void removeAllWindows() {
final ArrayList<HousePart> windows = 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 Window && !part.getLockEdit() && part.getTopContainer() == foundation) {
windows.add(part);
}
}
} else {
for (final HousePart part : parts) {
if (part instanceof Window && !part.getLockEdit()) {
windows.add(part);
}
}
}
if (windows.isEmpty()) {
JOptionPane.showMessageDialog(MainFrame.getInstance(), "There is no window to remove.", "No Window", JOptionPane.INFORMATION_MESSAGE);
return;
}
if (JOptionPane.showConfirmDialog(MainFrame.getInstance(), "Do you really want to remove all " + windows.size() + " windows" + (selectedPart != null ? " of the selected building" : "") + "?", "Confirm", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE) != JOptionPane.YES_OPTION) {
return;
}
final RemoveMultiplePartsCommand c = new RemoveMultiplePartsCommand(windows);
for (final HousePart part : windows) {
remove(part, false);
}
redrawAll();
SceneManager.getInstance().getUndoManager().addEdit(c);
edited = true;
}
use of org.concord.energy3d.model.Window in project energy3d by concord-consortium.
the class Scene method removeAllWindowShutters.
public void removeAllWindowShutters() {
final ArrayList<Window> windows = new ArrayList<Window>();
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 Window && !part.getLockEdit() && part.getTopContainer() == foundation) {
final Window w = (Window) part;
if (w.getLeftShutter() || w.getRightShutter()) {
windows.add(w);
}
}
}
} else {
for (final HousePart part : parts) {
if (part instanceof Window && !part.getLockEdit()) {
final Window w = (Window) part;
if (w.getLeftShutter() || w.getRightShutter()) {
windows.add(w);
}
}
}
}
if (windows.isEmpty()) {
JOptionPane.showMessageDialog(MainFrame.getInstance(), "There is no window shutter to remove.", "No Shutter", JOptionPane.INFORMATION_MESSAGE);
return;
}
if (JOptionPane.showConfirmDialog(MainFrame.getInstance(), "Do you really want to remove all " + windows.size() + " window shutters" + (selectedPart != null ? " of the selected building" : "") + "?", "Confirm", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE) != JOptionPane.YES_OPTION) {
return;
}
final RemoveMultipleShuttersCommand c = new RemoveMultipleShuttersCommand(windows);
for (final HousePart part : windows) {
final Window w = (Window) part;
w.setLeftShutter(false);
w.setRightShutter(false);
}
redrawAll();
SceneManager.getInstance().getUndoManager().addEdit(c);
edited = true;
}
Aggregations