/** positions a label in a particular spot */ private void position(GLabel label_positioned) { GLabel box = label_positioned; box.setFont(new Font("Serif", Font.BOLD, FONTSIZE)); box.setColor(FONTCOLOR); add(box); }
/* Draw graph line with the name and rating */ private void drawEntry(NameSurferEntry entry, int entryNumber) { /* Draws graph line */ for (int i = 0; i < NDECADES - 1; i++) { int position1 = entry.getRank(i); int position2 = entry.getRank(i + 1); double x1 = i * (getWidth() / NDECADES); double x2 = (i + 1) * (getWidth() / NDECADES); double y1 = 0; double y2 = 0; if (position1 != 0 && position2 != 0) { y1 = GRAPH_MARGIN_SIZE + (getHeight() - GRAPH_MARGIN_SIZE * 2) * position1 / MAX_RANK; y2 = GRAPH_MARGIN_SIZE + (getHeight() - GRAPH_MARGIN_SIZE * 2) * position2 / MAX_RANK; } else if (position1 == 0 && position2 == 0) { y1 = getHeight() - GRAPH_MARGIN_SIZE; y2 = y1; } else if (position1 == 0) { y1 = getHeight() - GRAPH_MARGIN_SIZE; y2 = GRAPH_MARGIN_SIZE + (getHeight() - GRAPH_MARGIN_SIZE * 2) * position2 / MAX_RANK; } else { y1 = GRAPH_MARGIN_SIZE + (getHeight() - GRAPH_MARGIN_SIZE * 2) * position1 / MAX_RANK; y2 = getHeight() - GRAPH_MARGIN_SIZE; } GLine line = new GLine(x1, y1, x2, y2); /* Set line color */ if (entryNumber % 4 == 0) { line.setColor(Color.BLUE); } else if (entryNumber % 4 == 1) { line.setColor(Color.RED); } else if (entryNumber % 4 == 2) { line.setColor(Color.MAGENTA); } else if (entryNumber % 4 == 3) { line.setColor(Color.BLACK); } add(line); } /* Add label with the name and ranking */ for (int i = 0; i < NDECADES; i++) { String name = entry.getName(); int position = entry.getRank(i); String positionString = Integer.toString(position); String label = name + " " + positionString; double x = i * (getWidth() / NDECADES) + 10; double x1 = x - NDECADES; double y; int R = 5; if (position != 0) { y = GRAPH_MARGIN_SIZE + (getHeight() - GRAPH_MARGIN_SIZE * 2) * position / MAX_RANK; } else { /* Add "*" if name was not used and remove marker point */ label = name + " *"; y = getHeight() - GRAPH_MARGIN_SIZE - 10; R = 0; } /* Add marker point */ GOval marker = new GOval(x1, y - 2, R, R); /* Got "y-2" by scientific research =) */ marker.setFilled(true); GLabel nameLabel = new GLabel(label, x, y); nameLabel.setFont(new Font("Times Roman", Font.BOLD, 12)); /* Set label color */ if (entryNumber % 4 == 0) { nameLabel.setColor(Color.BLUE); marker.setColor(Color.BLUE); } else if (entryNumber % 4 == 1) { nameLabel.setColor(Color.RED); marker.setColor(Color.RED); } else if (entryNumber % 4 == 2) { nameLabel.setColor(Color.MAGENTA); marker.setColor(Color.MAGENTA); } else if (entryNumber % 4 == 3) { nameLabel.setColor(Color.BLACK); marker.setColor(Color.BLACK); } add(nameLabel); add(marker); } }
/*Place the labels on top */ private void placeLabels() { /*Place label On Rent */ GLabel onRentLabel = new GLabel("ON RENT"); onRentLabel.setFont(new Font("Serif", Font.BOLD, BIGFONTSIZE)); onRentLabel.setColor(FONTCOLOR); add(onRentLabel, RENTX + RENTWIDTH / 2 - onRentLabel.getWidth() / 2, RENTY - EQUIPHEIGHT); /*Place label Available */ GLabel availForRentLabel = new GLabel("AVAILABLE FOR RENT"); availForRentLabel.setFont(new Font("Serif", Font.BOLD, BIGFONTSIZE)); availForRentLabel.setColor(FONTCOLOR); add( availForRentLabel, AVAILX + AVAILWIDTH / 2 - availForRentLabel.getWidth() / 2, AVAILY - EQUIPHEIGHT); /*Place label Shop */ GLabel shopLabel = new GLabel("SHOP"); shopLabel.setFont(new Font("Serif", Font.BOLD, BIGFONTSIZE)); shopLabel.setColor(FONTCOLOR); add(shopLabel, SHOPX + SHOPWIDTH / 2 - shopLabel.getWidth() / 2, SHOPY - EQUIPHEIGHT * 14); /*Place the lost sales label */ lostSalesLabel1 = new GLabel("Lost Sales HR = " + lostSales.get(0)); lostSalesLabel2 = new GLabel("Lost Sales MR = " + lostSales.get(1)); lostSalesLabel3 = new GLabel("Lost Sales LR = " + lostSales.get(2)); lostSalesLabel1.setFont(new Font("Serif", Font.BOLD, BIGFONTSIZE)); lostSalesLabel2.setFont(new Font("Serif", Font.BOLD, BIGFONTSIZE)); lostSalesLabel3.setFont(new Font("Serif", Font.BOLD, BIGFONTSIZE)); lostSalesLabel1.setColor(FONTCOLOR); lostSalesLabel2.setColor(FONTCOLOR); lostSalesLabel3.setColor(FONTCOLOR); add(lostSalesLabel1, START_X + 4 * EQUIPWIDTH, 4 * EQUIPHEIGHT); add( lostSalesLabel2, START_X + 4 * EQUIPWIDTH, 4 * EQUIPHEIGHT + lostSalesLabel1.getHeight() * 1.5); add( lostSalesLabel3, START_X + 4 * EQUIPWIDTH, 4 * EQUIPHEIGHT + lostSalesLabel2.getHeight() * 3); /*Place the days elapsed label */ daysElapsed = 0; daysElapsedLabel = new GLabel("DAY" + daysElapsed); daysElapsedLabel.setFont(new Font("Serif", Font.BOLD, 24)); daysElapsedLabel.setColor(Color.red.darker()); add(daysElapsedLabel, APPLICATION_WIDTH / 2, START_Y / 2); /*Place the sales Label */ sales = 0; salesLabel = new GLabel("SALES: $" + sales); salesLabel.setFont(new Font("Serif", Font.BOLD, 24)); salesLabel.setColor(Color.GREEN.darker()); add(salesLabel, APPLICATION_WIDTH / 2, daysElapsedLabel.getY() + daysElapsedLabel.getY()); /*Place the capitalInvested Label */ capitalInvested = 0; capitalLabel = new GLabel("Capital Invested: $" + capitalInvested); capitalLabel.setFont(new Font("Serif", Font.BOLD, 18)); capitalLabel.setColor(Color.RED.darker()); add( capitalLabel, lostSalesLabel1.getX(), lostSalesLabel3.getY() + lostSalesLabel3.getHeight() * 2); }