package toolbars; import android.os.Bundle; import android.widget.ToggleButton; import android.widget.Button; import android.app.FragmentManager; import android.view.View.OnClickListener; import android.view.View; import android.app.Activity; import net.sourceforge.fidocadj.dialogs.DialogLayer; import net.sourceforge.fidocadj.*; import net.sourceforge.fidocadj.circuit.controllers.ElementsEdtActions; /** ANDROID VERSION. Handle the events on the toolbar present in the resources. <pre> This file is part of FidoCadJ. FidoCadJ 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. FidoCadJ 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 for more details. You should have received a copy of the GNU General Public License along with FidoCadJ. If not, see <http://www.gnu.org/licenses/>. Copyright 2014 by Davide Bucci </pre> */ public class ToolbarTools { private ToggleButton selection; private ToggleButton line; private ToggleButton advtext; private ToggleButton bezier; private ToggleButton polygon; private ToggleButton complexcurve; private ToggleButton ellipse; private ToggleButton rectangle; private ToggleButton connection; private ToggleButton pcbline; private ToggleButton pcbpad; private ToggleButton hand; private ToggleButton zoom; private Button layer; private Activity aaParent; private ElementsEdtActions eea; /** Create and add all the required listeners to the toggle buttons. */ public void activateListeners(Activity aa, ElementsEdtActions ee) { eea=ee; eea.setActionSelected(ElementsEdtActions.NONE); getButtons(aa); aaParent=aa; // Quite boring, but easy code. Each listener blanks the state // of all buttons, except the one which has been clicked and // sets the current selected state. selection.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { resetButtons(selection); if(!selection.isChecked()) eea.setActionSelected(ElementsEdtActions.NONE); else eea.setActionSelected(ElementsEdtActions.SELECTION); } }); line.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { resetButtons(line); if(!line.isChecked()) eea.setActionSelected(ElementsEdtActions.NONE); else eea.setActionSelected(ElementsEdtActions.LINE); } }); advtext.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { resetButtons(advtext); if(!advtext.isChecked()) eea.setActionSelected(ElementsEdtActions.NONE); else eea.setActionSelected(ElementsEdtActions.TEXT); } }); bezier.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { resetButtons(bezier); if(!bezier.isChecked()) eea.setActionSelected(ElementsEdtActions.NONE); else eea.setActionSelected(ElementsEdtActions.BEZIER); } }); polygon.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { resetButtons(polygon); if(!polygon.isChecked()) eea.setActionSelected(ElementsEdtActions.NONE); else eea.setActionSelected(ElementsEdtActions.POLYGON); } }); complexcurve.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { resetButtons(complexcurve); if(!complexcurve.isChecked()) eea.setActionSelected(ElementsEdtActions.NONE); else eea.setActionSelected(ElementsEdtActions.COMPLEXCURVE); } }); ellipse.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { resetButtons(ellipse); if(!ellipse.isChecked()) eea.setActionSelected(ElementsEdtActions.NONE); else eea.setActionSelected(ElementsEdtActions.ELLIPSE); } }); rectangle.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { resetButtons(rectangle); if(!rectangle.isChecked()) eea.setActionSelected(ElementsEdtActions.NONE); else eea.setActionSelected(ElementsEdtActions.RECTANGLE); } }); connection.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { resetButtons(connection); if(!connection.isChecked()) eea.setActionSelected(ElementsEdtActions.NONE); else eea.setActionSelected(ElementsEdtActions.CONNECTION); } }); pcbline.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { resetButtons(pcbline); if(!pcbline.isChecked()) eea.setActionSelected(ElementsEdtActions.NONE); else eea.setActionSelected(ElementsEdtActions.PCB_LINE); } }); pcbpad.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { resetButtons(pcbpad); if(!pcbpad.isChecked()) eea.setActionSelected(ElementsEdtActions.NONE); else eea.setActionSelected(ElementsEdtActions.PCB_PAD); } }); hand.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { resetButtons(hand); if(!hand.isChecked()) eea.setActionSelected(ElementsEdtActions.NONE); else eea.setActionSelected(ElementsEdtActions.HAND); } }); /* zoom.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { resetButtons(zoom); if(!zoom.isChecked()) eea.setActionSelected(ElementsEdtActions.NONE); else eea.setActionSelected(ElementsEdtActions.ZOOM); } });*/ layer.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // show layer dialog DialogLayer dl = new DialogLayer(); dl.show(aaParent.getFragmentManager(), ""); } }); } /** Reset the state of all buttons, except the one specified. @param exc the toggle button to exclude from the reset. It can be null, if all buttons should be reset. */ private void resetButtons(ToggleButton exc) { clear(exc); eea.setActionSelected(ElementsEdtActions.NONE); } /** Reset the state of all buttons, except the one specified. @param exc the toggle button to exclude from the reset. It can be null, if all buttons should be reset. */ public void clear(ToggleButton exc) { if(!selection.equals(exc)) selection.setChecked(false); if(!line.equals(exc)) line.setChecked(false); if(!advtext.equals(exc)) advtext.setChecked(false); if(!bezier.equals(exc)) bezier.setChecked(false); if(!polygon.equals(exc)) polygon.setChecked(false); if(!complexcurve.equals(exc)) complexcurve.setChecked(false); if(!ellipse.equals(exc)) ellipse.setChecked(false); if(!rectangle.equals(exc)) rectangle.setChecked(false); if(!connection.equals(exc)) connection.setChecked(false); if(!pcbline.equals(exc)) pcbline.setChecked(false); if(!pcbpad.equals(exc)) pcbpad.setChecked(false); if(!hand.equals(exc)) hand.setChecked(false); //if(!zoom.equals(exc)) zoom.setChecked(false); } /** Associate all the ToggleButtons present in the resources to internal variables. */ private void getButtons(Activity aa) { // get elements of the toolbars created in the resources selection = (ToggleButton) aa.findViewById(R.id.selection); line = (ToggleButton) aa.findViewById(R.id.line); advtext = (ToggleButton) aa.findViewById(R.id.advtext); bezier = (ToggleButton) aa.findViewById(R.id.bezier); polygon = (ToggleButton) aa.findViewById(R.id.polygon); complexcurve = (ToggleButton) aa.findViewById(R.id.complexcurve); ellipse = (ToggleButton) aa.findViewById(R.id.ellipse); rectangle = (ToggleButton) aa.findViewById(R.id.rectangle); connection = (ToggleButton) aa.findViewById(R.id.connection); pcbline = (ToggleButton) aa.findViewById(R.id.pcbline); pcbpad = (ToggleButton) aa.findViewById(R.id.pcbpad); hand = (ToggleButton) aa.findViewById(R.id.hand); layer = (Button) aa.findViewById(R.id.layer); //zoom = (ToggleButton) aa.findViewById(R.id.zoom); } }