private void drawArea(Graphics g, Automaton automaton, State state,
			Point point, Color color) {
		// Draw the basic background of the state.
		drawBackground(g, state, point, color);
		// What about the text label?
		g.setColor(Color.black);

		int dx = ((int) g.getFontMetrics().getStringBounds(state.getName(), g)
				.getWidth()) >> 1;
		int dy = ((int) g.getFontMetrics().getAscent()) >> 1;
		
		g.drawString(state.getName(), point.x - dx, point.y + dy);
		
		// Draw the outline.
		// //System.out.println("State name:" + state.getInternalName());
//		if (state.getInternalName() == null) {
			g.drawOval(point.x - radius, point.y - radius,

			2 * radius, 2 * radius);
			// If this is a final state, draw the little "inner circle."
			if (automaton.isFinalState(state))
				g.drawOval(point.x - radius + 3, point.y - radius + 3,
						(radius - 3) << 1, (radius - 3) << 1);
			// If this is the initial state.
			if (automaton.getInitialState() == state) {
				int[] x = { point.x - radius, point.x - (radius << 1),
						point.x - (radius << 1) };
				int[] y = { point.y, point.y - radius, point.y + radius };
				g.setColor(Color.white);
				g.fillPolygon(x, y, 3);
				g.setColor(Color.black);
				g.drawPolygon(x, y, 3);
			}
//		} else {
//			Double temp = new Double(radius * 1.5);
//			g.drawRect(point.x - radius, point.y - radius, 2 * radius,
//					2 * radius);
//			// If this is a final state, draw the little "inner rectangle."
//			if (automaton.isFinalState(state))
//				g.drawRect(point.x - radius + 3, point.y - radius + 3,
//						(radius - 3) << 1, (radius - 3) << 1);
//			// If this is the initial state.
//			if (automaton.getInitialState() == state) {
//				int[] x = { point.x - radius, point.x - (radius << 1),
//						point.x - (radius << 1) };
//				int[] y = { point.y, point.y - radius, point.y + radius };
//				g.setColor(Color.white);
//				g.fillPolygon(x, y, 3);
//				g.setColor(Color.black);
//				g.drawPolygon(x, y, 3);
//			}
//		}
	}