bug fix: z-coord was not painted + some (even) positions caused errors

This commit is contained in:
fros4943 2009-09-17 12:38:04 +00:00
parent ca0f2c91c8
commit 87aa2c2aad

View file

@ -26,13 +26,12 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $Id: PositionVisualizerSkin.java,v 1.1 2009/08/27 13:59:47 fros4943 Exp $ * $Id: PositionVisualizerSkin.java,v 1.2 2009/09/17 12:38:04 fros4943 Exp $
*/ */
package se.sics.cooja.plugins.skins; package se.sics.cooja.plugins.skins;
import java.awt.Color; import java.awt.Color;
import java.awt.FontMetrics;
import java.awt.Graphics; import java.awt.Graphics;
import java.awt.Point; import java.awt.Point;
import java.util.Observable; import java.util.Observable;
@ -107,43 +106,46 @@ public class PositionVisualizerSkin implements VisualizerSkin {
} }
public void paintAfterMotes(Graphics g) { public void paintAfterMotes(Graphics g) {
FontMetrics fm = g.getFontMetrics();
g.setColor(Color.BLACK); g.setColor(Color.BLACK);
/* Paint last output below motes */ /* Paint position coordinates right of motes */
Mote[] allMotes = simulation.getMotes(); Mote[] allMotes = simulation.getMotes();
for (Mote mote: allMotes) { for (Mote mote: allMotes) {
Position pos = mote.getInterfaces().getPosition(); Position pos = mote.getInterfaces().getPosition();
Point pixel = visualizer.transformPositionToPixel(pos); Point pixel = visualizer.transformPositionToPixel(pos);
String msg = ""; String msg = "";
String posString;
String[] parts; String[] parts;
/* X */ /* X */
parts = String.valueOf(pos.getXCoordinate()).split("\\."); posString = String.valueOf(pos.getXCoordinate()) + "000";
parts = posString.split("\\.");
if (parts[0].length() >= 4) { if (parts[0].length() >= 4) {
msg += parts[0]; msg += parts[0];
} else { } else {
msg += String.valueOf(pos.getXCoordinate()).substring(0, 5); msg += posString.substring(0, 5);
} }
/* Y */ /* Y */
msg += ", "; msg += ", ";
parts = String.valueOf(pos.getYCoordinate()).split("\\."); posString = String.valueOf(pos.getYCoordinate()) + "000";
parts = posString.split("\\.");
if (parts[0].length() >= 4) { if (parts[0].length() >= 4) {
msg += parts[0]; msg += parts[0];
} else { } else {
msg += String.valueOf(pos.getYCoordinate()).substring(0, 5); msg += posString.substring(0, 5);
} }
/* Z */ /* Z */
if (pos.getZCoordinate() != 0) { if (pos.getZCoordinate() != 0) {
msg += ", "; msg += ", ";
parts = String.valueOf(pos.getXCoordinate()).split("\\."); posString = String.valueOf(pos.getZCoordinate()) + "000";
parts = posString.split("\\.");
if (parts[0].length() >= 4) { if (parts[0].length() >= 4) {
msg += parts[0]; msg += parts[0];
} else { } else {
msg += String.valueOf(pos.getXCoordinate()).substring(0, 5); msg += posString.substring(0, 5);
} }
} }