Update of /cvsroot/bprocessor/gui/src/net/sourceforge/bprocessor/gui/actions
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv31918/src/net/sourceforge/bprocessor/gui/actions
Added Files:
ToolsEnergyActionListener.java
Log Message:
Spaces now have simple classification, and based on this classification an energy transmission loss can be calculated
--- NEW FILE: ToolsEnergyActionListener.java ---
//---------------------------------------------------------------------------------
// $Id: ToolsEnergyActionListener.java,v 1.1 2006/06/26 11:37:53 nbramsen Exp $
//
// Copyright (c) 2005 The BProcessor Team (http://bprocessor.sourceforge.net)
// Released under the Lesser GNU Public License v2.1
//---------------------------------------------------------------------------------
package net.sourceforge.bprocessor.gui.actions;
import net.sourceforge.bprocessor.model.Project;
import net.sourceforge.bprocessor.model.Surface;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Iterator;
import javax.swing.JOptionPane;
import org.apache.log4j.Logger;
/**
* The tools->enery calc action listener
*/
public class ToolsEnergyActionListener implements ActionListener {
/** The logger */
private static Logger log = Logger.getLogger(ToolsEnergyActionListener.class);
/**
* ToolsEnergyActionListener
*/
public ToolsEnergyActionListener() {
}
/**
* Action performed
* @param e The action event
*/
public void actionPerformed(ActionEvent e) {
Iterator it = Project.getInstance().getSurfaces().iterator();
double totalloss = 0;
while (it.hasNext()) {
Surface current = (Surface) it.next();
if (current.getFrontDomain().getClassification().equalsIgnoreCase("Exterior")) {
totalloss = totalloss + calcloss(current.getBackDomain().getClassification(), current);
}
if (current.getBackDomain().getClassification().equalsIgnoreCase("Exterior")) {
totalloss = totalloss + calcloss(current.getFrontDomain().getClassification(), current);
}
}
JOptionPane.showMessageDialog(null, "The total energytransmission loss is:" + totalloss);
}
/**
* Calculates energyloss of a surface
* @param classification The classifaction of the surface
* @param current The current Surface
* @return the loss
*/
private double calcloss(String classification, Surface current) {
double loss = 0;
if (classification.equalsIgnoreCase("Terrandæk")) {
loss = 0.15 * current.getArea();
return loss;
}
if (classification.equalsIgnoreCase("Tagkonstruktion")) {
loss = 0.15 * current.getArea();
return loss;
}
if (classification.equalsIgnoreCase("Ydervæg")) {
loss = 0.25 * current.getArea();
return loss;
}
if (classification.equalsIgnoreCase("Ældre termovindue")) {
loss = 2.5 * current.getArea();
return loss;
}
if (classification.equalsIgnoreCase("2-lags lavenergivindue")) {
loss = 1.5 * current.getArea();
return loss;
}
if (classification.equalsIgnoreCase("3-lags lavenergivindue")) {
loss = 0.8 * current.getArea();
return loss;
}
if (classification.equalsIgnoreCase("Dør")) {
loss = 1.5 * current.getArea();
return loss;
}
return loss;
}
}
|