/* * Copyright (C) 2014 Alfons Wirtz * website www.freerouting.net * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License at <http://www.gnu.org/licenses/> * for more details. * * ScreenMessageFields.java * * Created on 8. August 2003, 19:10 */ package interactive; import javax.swing.JLabel; /** * Text fields to display messages on the screen. * * @author arbeit */ public class ScreenMessages { /** Creates a new instance of ScreenMessageFields */ public ScreenMessages(JLabel p_status_field, JLabel p_add_field, JLabel p_layer_field, JLabel p_mouse_position, java.util.Locale p_locale) { resources = java.util.ResourceBundle.getBundle("interactive.resources.ScreenMessages", p_locale); locale = p_locale; active_layer_string = resources.getString("current_layer") + " "; target_layer_string = resources.getString("target_layer") + " "; status_field = p_status_field; add_field = p_add_field; layer_field = p_layer_field; mouse_position = p_mouse_position; add_field.setText(empty_string); this.number_format = java.text.NumberFormat.getInstance(p_locale); this.number_format.setMaximumFractionDigits(4); } /** * Sets the message in the status field. */ public void set_status_message(String p_message) { if (!this.write_protected) { status_field.setText(p_message); } } /** * Sets the displayed layer number on the screen. */ public void set_layer(String p_layer_name) { if (!this.write_protected) { layer_field.setText(active_layer_string + p_layer_name); } } public void set_interactive_autoroute_info(int p_found, int p_not_found, int p_items_to_go) { Integer found = p_found; Integer failed = p_not_found; Integer items_to_go = p_items_to_go; add_field.setText(resources.getString("to_route") + " " + items_to_go.toString()); layer_field.setText(resources.getString("found") + " " + found.toString() + ", " + resources.getString("failed") + " " + failed.toString()); } public void set_batch_autoroute_info(int p_items_to_go, int p_routed, int p_ripped, int p_failed) { Integer ripped = p_ripped; Integer routed = p_routed; Integer items_to_go = p_items_to_go; Integer failed = p_failed; add_field.setText( resources.getString("to_route") + " " + items_to_go.toString() + ", " + resources.getString("routed") + " " + routed.toString() + ", "); layer_field.setText(resources.getString("ripped") + " " + ripped.toString() + ", " + resources.getString("failed") + " " + failed.toString()); } public void set_batch_fanout_info(int p_pass_no, int p_components_to_go) { Integer components_to_go = p_components_to_go; Integer pass_no = new Integer(p_pass_no); add_field.setText(resources.getString("fanout_pass") + " " + pass_no.toString() + ": "); layer_field.setText(resources.getString("still") + " " + components_to_go.toString() + " " + resources.getString("components")); } public void set_post_route_info( int p_via_count, double p_trace_length) { Integer via_count = p_via_count; add_field.setText(resources.getString("via_count") + " " + via_count.toString()); layer_field.setText(resources.getString("trace_length") + " " + this.number_format.format(p_trace_length)); } /** * Sets the displayed layer of the nearest target item * in interactive routing. */ public void set_target_layer(String p_layer_name) { if (!(p_layer_name.equals(prev_target_layer_name) || this.write_protected)) { add_field.setText(target_layer_string + p_layer_name); prev_target_layer_name = p_layer_name; } } public void set_mouse_position(geometry.planar.FloatPoint p_pos) { if (p_pos == null || this.mouse_position == null || this.write_protected) { return; } this.mouse_position.setText(p_pos.to_string(this.locale)); } /** * Clears the additional field, which is among others used to * display the layer of the nearest target item. */ public void clear_add_field() { if (!this.write_protected) { add_field.setText(empty_string); prev_target_layer_name = empty_string; } } /** * Clears the status field and the additional field. */ public void clear() { if (!this.write_protected) { status_field.setText(empty_string); clear_add_field(); layer_field.setText(empty_string); } } /** * As long as write_protected is set to true, the set functions in this class will do nothing. */ public void set_write_protected(boolean p_value) { write_protected = p_value; } private final java.util.ResourceBundle resources; private final java.util.Locale locale; private final String active_layer_string; private final String target_layer_string; static private final String empty_string = " "; private JLabel add_field; private JLabel status_field; private JLabel layer_field; private JLabel mouse_position; private String prev_target_layer_name = empty_string; private boolean write_protected = false; /** The number format for displaying the trace lengtht */ private final java.text.NumberFormat number_format; }