X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FRestInputParamEditDialog.java;h=764f9c9ff2ce94d12a623506cf1b4ed3260a3191;hb=865a855a4ca87eadb3e5ff284ed32ed307d9c34b;hp=9cf73f455ade34b02b2fe8db69feb75ef8e8a92b;hpb=6bd9630607bd38aaf9b42738a0ae90de8fe5c6e8;p=jalview.git diff --git a/src/jalview/gui/RestInputParamEditDialog.java b/src/jalview/gui/RestInputParamEditDialog.java index 9cf73f4..764f9c9 100644 --- a/src/jalview/gui/RestInputParamEditDialog.java +++ b/src/jalview/gui/RestInputParamEditDialog.java @@ -1,27 +1,26 @@ -/******************************************************************************* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7) - * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle - * +/* + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.0b1) + * Copyright (C) 2014 The Jalview Authors + * * This file is part of Jalview. - * + * * Jalview 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. - * + * * Jalview 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 Jalview. If not, see . - *******************************************************************************/ + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ package jalview.gui; import java.util.ArrayList; import java.util.Hashtable; -import javax.swing.JDialog; -import javax.swing.JInternalFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.event.ListSelectionEvent; @@ -29,7 +28,6 @@ import javax.swing.event.ListSelectionEvent; import net.miginfocom.swing.MigLayout; import jalview.jbgui.GRestInputParamEditDialog; -import jalview.ws.params.ArgumentI; import jalview.ws.params.InvalidArgumentException; import jalview.ws.params.OptionI; import jalview.ws.params.ParameterI; @@ -43,8 +41,8 @@ public class RestInputParamEditDialog extends GRestInputParamEditDialog Hashtable> typeopts = new Hashtable>(); - Hashtable opanps = new Hashtable(); - + Hashtable opanps = new Hashtable(); + private InputType getTypeFor(String name) { try @@ -61,53 +59,60 @@ public class RestInputParamEditDialog extends GRestInputParamEditDialog } int reply; + JalviewDialog frame = new JalviewDialog() { - + @Override protected void raiseClosed() { - + } - + @Override protected void okPressed() { - reply=JOptionPane.OK_OPTION; + reply = JOptionPane.OK_OPTION; } - + @Override protected void cancelPressed() { - reply=JOptionPane.CANCEL_OPTION; - + reply = JOptionPane.CANCEL_OPTION; + } }; - InputType old,current; + + InputType old, current; + public RestInputParamEditDialog( RestServiceEditorPane restServiceEditorPane, RestServiceDescription currentservice, InputType toedit) { initFor(restServiceEditorPane, currentservice, toedit); frame.waitForInput(); - // TODO: warn user if they are about to overwrite an existing parameter because they have used the same name when editing a different parameter. + // TODO: warn user if they are about to overwrite an existing parameter + // because they have used the same name when editing a different parameter. // TODO: make any press of the return key cause 'OK' to be pressed } + private void initFor(RestServiceEditorPane restServiceEditorPane, RestServiceDescription currentservice, InputType toedit) { okcancel.add(frame.cancel); okcancel.add(frame.ok); - frame.initDialogFrame(dpane, true, true, "Edit parameter for service "+currentservice.getName(), 600,800); - + frame.initDialogFrame(dpane, true, true, "Edit parameter for service " + + currentservice.getName(), 600, 800); + initTypeLists(); - reply=JOptionPane.CANCEL_OPTION; + reply = JOptionPane.CANCEL_OPTION; old = toedit; current = null; - if (old!=null) { + if (old != null) + { setStateFor(old); } - updated = updated && reply==JOptionPane.OK_OPTION; + updated = updated && reply == JOptionPane.OK_OPTION; frame.validate(); } @@ -115,7 +120,7 @@ public class RestInputParamEditDialog extends GRestInputParamEditDialog RestServiceEditorPane restServiceEditorPane, RestServiceDescription currentservice, String string) { - initFor(restServiceEditorPane, currentservice,null); + initFor(restServiceEditorPane, currentservice, null); tok.setText(string); frame.waitForInput(); } @@ -123,14 +128,17 @@ public class RestInputParamEditDialog extends GRestInputParamEditDialog private void setStateFor(InputType current) { tok.setText(current.token); - OptsAndParamsPage opanp=opanps.get(current.getURLtokenPrefix()); - for (OptionI ops:current.getOptions()) + OptsAndParamsPage opanp = opanps.get(current.getURLtokenPrefix()); + for (OptionI ops : current.getOptions()) { if (ops instanceof ParameterI) { opanp.setParameter((ParameterI) ops); - } else { - if (ops.getValue()!=null && ops.getValue().length()>0) { + } + else + { + if (ops.getValue() != null && ops.getValue().length() > 0) + { opanp.selectOption(ops, ops.getValue()); } } @@ -138,27 +146,36 @@ public class RestInputParamEditDialog extends GRestInputParamEditDialog typeList.setSelectedValue(current.getURLtokenPrefix(), true); type_SelectionChangedActionPerformed(null); } + private void updateCurrentType() { - if (typeList.getSelectedValue()!=null) { - InputType newType = getTypeFor((String)typeList.getSelectedValue()); - if (newType!=null) { - newType.token = tok.getText().trim(); - try { - newType.configureFromArgumentI(opanps.get(newType.getURLtokenPrefix()).getCurrentSettings()); - current=newType; - updated=true; - } catch (InvalidArgumentException ex) { - System.err.println("IMPLEMENTATION ERROR: Invalid argument for type : "+typeList.getSelectedValue()+"\n"); - ex.printStackTrace(); + if (typeList.getSelectedValue() != null) + { + InputType newType = getTypeFor((String) typeList.getSelectedValue()); + if (newType != null) + { + newType.token = tok.getText().trim(); + try + { + newType.configureFromArgumentI(opanps.get( + newType.getURLtokenPrefix()).getCurrentSettings()); + current = newType; + updated = true; + } catch (InvalidArgumentException ex) + { + System.err + .println("IMPLEMENTATION ERROR: Invalid argument for type : " + + typeList.getSelectedValue() + "\n"); + ex.printStackTrace(); + } } } - } - + } + private void initTypeLists() { - ArrayList types=new ArrayList(); + ArrayList types = new ArrayList(); // populate type list for (Class type : RestServiceDescription.getInputTypes()) { @@ -171,8 +188,8 @@ public class RestInputParamEditDialog extends GRestInputParamEditDialog jtype = (InputType) (type.getConstructor().newInstance(null)); typeclass.put(jtype.getURLtokenPrefix(), type); // and populate parameters from this type - OptsAndParamsPage opanp = new OptsAndParamsPage(this,true); - opanps.put(jtype.getURLtokenPrefix(),opanp); + OptsAndParamsPage opanp = new OptsAndParamsPage(this, true); + opanps.put(jtype.getURLtokenPrefix(), opanp); for (OptionI opt : jtype.getOptions()) { @@ -200,7 +217,7 @@ public class RestInputParamEditDialog extends GRestInputParamEditDialog } } typeList.setListData(types.toArray()); - + } @Override @@ -213,7 +230,7 @@ public class RestInputParamEditDialog extends GRestInputParamEditDialog for (JPanel opt : typeopts.get(typen)) { opt.setOpaque(true); - options.add(opt,"wrap"); + options.add(opt, "wrap"); } options.invalidate(); optionsPanel.setVisible(true); @@ -226,7 +243,8 @@ public class RestInputParamEditDialog extends GRestInputParamEditDialog updateCurrentType(); } - boolean updated=false; + boolean updated = false; + public boolean wasUpdated() { return updated; @@ -242,15 +260,16 @@ public class RestInputParamEditDialog extends GRestInputParamEditDialog @Override protected void tokChanged_actionPerformed() { - if (tok.getText().trim().length()>0) + if (tok.getText().trim().length() > 0) { - if (current!=null) + if (current != null) { current.token = tok.getText().trim(); - updated = true; - } + updated = true; + } } } + @Override public void argSetModified(Object modifiedElement, boolean b) {