source: git/Singular/LIB/surfex/ParameterAdmin.java @ 3de2ca

spielwiese
Last change on this file since 3de2ca was 3de2ca, checked in by Hans Schönemann <hannes@…>, 16 years ago
*hannes: surfex_0_90_00 git-svn-id: file:///usr/local/Singular/svn/trunk@11070 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 8.5 KB
Line 
1////////////////////////////////////////////////////////////////////////
2//
3// This file ParameterAdmin.java is part of SURFEX.
4//
5////////////////////////////////////////////////////////////////////////
6
7////////////////////////////////////////////////////////////////////////
8//
9// SURFEX version 0.90.00
10// =================
11//
12// Saarland University at Saarbruecken, Germany
13// Department of Mathematics and Computer Science
14//
15// SURFEX on the web: www.surfex.AlgebraicSurface.net
16//
17// Authors: Oliver Labs (2001-2008), Stephan Holzer (2004-2005)
18//
19// Copyright (C) 2001-2008
20//
21//
22// *NOTICE*
23// ========
24// 
25// This program is free software; you can redistribute it and/or modify it
26// under the terms of the GNU General Public License as published by the
27// Free Software Foundation ( version 3 or later of the License ).
28//
29// See LICENCE.TXT for details.
30//
31/////////////////////////////////////////////////////////////////////////
32
33import java.awt.BorderLayout;
34import java.awt.GridLayout;
35import java.awt.event.ActionEvent;
36import java.awt.event.ActionListener;
37import java.io.BufferedReader;
38import java.io.IOException;
39import java.util.ListIterator;
40import java.util.*;
41
42import javax.swing.*;
43import javax.swing.SwingUtilities;
44
45//////////////////////////////////////////////////////////////
46//
47// class ParameterAdmin
48//
49//////////////////////////////////////////////////////////////
50
51public class ParameterAdmin extends JPanel implements ActionListener {
52
53        JPanel parPanel;
54
55        JComboBox paramComboBox; // wird fuer den SaveMovieDialog gebraucht
56       
57        public Vector parList = new Vector();
58
59        Project project;
60
61        surfex surfex_;
62
63        ParameterAdmin(surfex su, Project pro) {
64                surfex_ = su;
65                project = pro;
66               
67                paramComboBox=new JComboBox();
68
69                setLayout(new BorderLayout());
70                parPanel = new JPanel(new GridLayout(20, 0));
71                add(parPanel, BorderLayout.CENTER);
72        }
73
74        public void actionPerformed(ActionEvent e) {
75        }
76
77    public void clear() {
78        parList.clear();
79        parPanel.removeAll();
80//      parcounter = 0;
81    }
82
83        public String[] getAllParams(){
84                String[] s=new String[this.parList.size()];
85                ListIterator li = parList.listIterator();
86                OneParameter tmpParameter;
87                int i=0;
88               
89                while (li.hasNext()) {
90                        tmpParameter=((OneParameter)li.next());
91                        s[i]=tmpParameter.nameLabel.getText();
92                       
93                       
94                        i++;
95                }       
96                return s;
97        }
98       
99    public double[] getAllParamValues(){
100        double[] s=new double[this.parList.size()];
101        ListIterator li = parList.listIterator();
102        OneParameter tmpParameter;
103        int i=0;
104       
105        while (li.hasNext()) {
106            tmpParameter=((OneParameter)li.next());
107            s[i]=tmpParameter.getValue()/1000.0;
108           
109            i++;
110        }       
111        return s;
112    }
113   
114       
115       
116       
117        public void newParameter() {
118                //  System.out.println("newParameter");
119                OneParameter par = new OneParameter(project);
120
121                // find a non-used parameter number:
122                int n = parList.size() + 1;
123                ListIterator li = parList.listIterator();
124                while (li.hasNext()) {
125                        if (n == ((OneParameter) (li.next())).parNo) {
126                                // if the parameter number n is already in use
127                                n = n + 1; // try the next number
128                                // reset the list iterator to the first element in the list:
129                                while (li.hasPrevious()) {
130                                        li.previous();
131                                }
132                        }
133                }
134                par.setParNo(n);
135                //  System.out.println("parNo:"+n);
136
137                // add this parameter to the list:
138                parList.add(par);
139                //  System.out.println("parList:"+parList.size());
140                parPanel.add(par);
141               
142               
143                // rausfinden, wo man den Parameter in ComboBox einfuegen kann:
144                int i=0;
145                //System.out.;
146                for(i=0;i<paramComboBox.getItemCount();i++){
147                        if(((String)paramComboBox.getItemAt(i)).compareTo(par.nameLabel.getText())>=0){
148                //              i--;
149                                break;
150                        }
151                }
152                //i--;
153//              System.out.println("index:"+i);
154                paramComboBox.insertItemAt(par.nameLabel.getText(),i);
155               
156                if(project.saveMovieDialog!=null){
157                        //nur updaten, falls es ihn ueberhaupt gibt...
158                        SwingUtilities.updateComponentTreeUI(project.saveMovieDialog);
159                }
160                SwingUtilities.updateComponentTreeUI(this);
161        }
162
163        public String save() {
164                String str = "";
165                ListIterator li = parList.listIterator();
166                str += "////////////////// PARAMETERS: /////////////////////////"
167                                + "\n";
168                str += parList.size() + "\n";
169                while (li.hasNext()) {
170                        str += ((OneParameter) li.next()).saveYourself();
171                }
172                return (str);
173        }
174
175    public void loadParameters(BufferedReader bs, String datatype,
176                                int iVersion) {
177        int k;
178        try {
179            String nix = bs.readLine();
180            String zeile1;
181            boolean first = true;
182           
183            for (k = Integer.parseInt(bs.readLine()); k > 0; k--) {
184                zeile1 = bs.readLine();//) != null) {
185                newParameter();
186                if (datatype.equals("specify")) {
187                    String strline;
188                    try {
189                        bs.mark(255);
190                        strline = bs.readLine();
191                        while ((strline.equals("parno:"))
192                               || (strline.equals("fromtoval:"))
193                               || (strline.equals("function:"))) {
194                            //          System.out.println("strline:"+strline);
195                            if (strline.equals("parno:")) {
196                                ((OneParameter) parList.lastElement())
197                                    .setParNo(Integer.parseInt(bs
198                                                               .readLine()));
199                            }
200                            if (strline.equals("function:")) {
201                                ((OneParameter) parList.lastElement())
202                                    .fct.setText(bs.readLine());
203                            }
204                            if (strline.equals("fromtoval:")) {
205                                ((OneParameter) parList.lastElement()).oldFrom = Double
206                                    .parseDouble(bs.readLine());
207                                ((OneParameter) parList.lastElement()).newFrom = ((OneParameter) parList
208                                                                                  .lastElement()).oldFrom;
209                               
210                                ((OneParameter) parList.lastElement()).oldTo = Double
211                                    .parseDouble(bs.readLine());
212                                ((OneParameter) parList.lastElement()).newTo = ((OneParameter) parList
213                                                                                .lastElement()).oldTo;
214                               
215                                ((OneParameter) parList.lastElement()).parSlider
216                                    .setMinimum((int)(((OneParameter) parList.lastElement()).newFrom*1000.0));
217                                ((OneParameter) parList.lastElement()).parSlider
218                                    .setMaximum((int)(((OneParameter) parList.lastElement()).newTo*1000.0));
219                               
220                                ((OneParameter) parList.lastElement()).parSlider
221                                    .setValue(Integer.parseInt(bs
222                                                               .readLine()));
223                                ((OneParameter) parList.lastElement())
224                                    .updateparSliderAndLabel();
225                            }
226                            bs.mark(255);
227                            strline = bs.readLine();
228                        } // end while()
229                        bs.reset();
230                    } catch (Exception nex) {
231                        bs.reset();
232                    }
233                }
234                if (datatype.equals("complete") || datatype.equals("onlyeqns")
235                    || datatype.equals("eqnsvis")) {
236                    ((OneParameter) parList.lastElement())
237                        .setParNo(Integer.parseInt(bs.readLine()));
238                    ((OneParameter) parList.lastElement()).oldFrom = Double
239                        .parseDouble(bs.readLine());
240                    ((OneParameter) parList.lastElement())
241                        .newFrom = ((OneParameter) parList.lastElement()).oldFrom;
242                    ((OneParameter) parList.lastElement()).oldTo = Double
243                        .parseDouble(bs.readLine());
244                    ((OneParameter) parList.lastElement()).newTo = 
245                        ((OneParameter) parList.lastElement()).oldTo;
246                    ((OneParameter) parList.lastElement()).parSlider
247                        .setMinimum((int)(((OneParameter) parList
248                                           .lastElement()).newFrom*1000.0));
249                    ((OneParameter) parList.lastElement()).parSlider
250                        .setMaximum((int)(((OneParameter) parList
251                                           .lastElement()).newTo*1000.0));
252                    ((OneParameter) parList.lastElement()).parSlider
253                        .setValue(Integer.parseInt(bs.readLine()));
254                    ((OneParameter) parList.lastElement()).from
255                        .setText("" + ((OneParameter) 
256                                       parList.lastElement()).newFrom);
257                    ((OneParameter) parList.lastElement()).to
258                        .setText("" + ((OneParameter) parList.lastElement()).newTo);
259                    ((OneParameter) parList.lastElement())
260                        .updateparSliderAndLabel();
261
262                    if(iVersion>=8906) {
263                        ((OneParameter) parList.lastElement()).fct
264                            .setText(bs.readLine());
265                    }
266
267                    ((OneParameter) parList.lastElement()).repaint();
268                }
269                if (datatype.equals("complete") || datatype.equals("onlystyle")) {
270                    //        ((OneParameter) parList.lastElement()).cbox.setSelected((Boolean.valueOf(bs.readLine())).booleanValue());
271                }
272            }
273        } catch (IOException e) {
274            System.out.println(e);
275        }
276    }
277   
278    /*public Vector getParameterNames(){
279      Vector l = new Vector();//new String[parList.size()];
280     
281      ListIterator li = parList.listIterator();
282      while (li.hasNext()) {
283      l.add(((OneParameter)li.next()).nameLabel.getText()) ;
284      //i++;
285      }         
286      return l;
287      }*/
288   
289    public JComboBox getParamComboBox(){
290        return paramComboBox;
291       
292    }
293   
294    public OneParameter getParameter(String s){
295        ListIterator li = parList.listIterator();
296                OneParameter tmpParameter;
297                while (li.hasNext()) {
298                        tmpParameter=((OneParameter)li.next());
299                        if(tmpParameter.nameLabel.getText().compareTo(s)==0){
300                                return tmpParameter;
301                        }
302                       
303                       
304                        //i++;
305                }               
306                return null;
307        }
308       
309       
310       
311} // end class ParameterAdmin
312
313
Note: See TracBrowser for help on using the repository browser.