source: git/Singular/LIB/surfex/SolitaryPointsAdmin.java @ 2ab830

spielwiese
Last change on this file since 2ab830 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: 10.0 KB
Line 
1////////////////////////////////////////////////////////////////////////
2//
3// This file SolitaryPointsAdmin.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.Vector;
41
42import javax.swing.JPanel;
43import javax.swing.SwingUtilities;
44
45//////////////////////////////////////////////////////////////
46//
47// class SolitaryPointsAdmin
48//
49//////////////////////////////////////////////////////////////
50
51public class SolitaryPointsAdmin extends JPanel implements ActionListener {
52
53        JPanel solPtsPanel;
54
55        public Vector solPtsList = new Vector();
56
57        Project project;
58
59        surfex surfex_;
60
61        SolitaryPointsAdmin(surfex su, Project pro) {
62                surfex_ = su;
63                project = pro;
64
65                setLayout(new BorderLayout());
66                solPtsPanel = new JPanel(new GridLayout(20, 0));
67                add(solPtsPanel, BorderLayout.WEST);
68        }
69
70        public void actionPerformed(ActionEvent e) {
71        }
72
73   public void clear() {
74        solPtsList.clear();
75        solPtsPanel.removeAll();
76    }
77
78
79        public void newSolitaryPoint() {
80                //  System.out.println("newSolitaryPoint");
81                SolitaryPoint par = new SolitaryPoint(project);
82
83                // find a non-used parameter number:
84                int n = solPtsList.size() + 1;
85                ListIterator li = solPtsList.listIterator();
86                while (li.hasNext()) {
87                        if (n == ((SolitaryPoint) (li.next())).solPtNo) {
88                                // if the parameter number n is already in use
89                                n = n + 1; // try the next number
90                                // reset the list iterator to the first element in the list:
91                                while (li.hasPrevious()) {
92                                        li.previous();
93                                }
94                        }
95                }
96                par.setSolPtNo(n);
97                //  System.out.println("solPtNo:"+n);
98
99                // add this parameter to the list:
100                solPtsList.add(par);
101                //  System.out.println("solPtsList:"+solPtsList.size());
102                solPtsPanel.add(par);
103                SwingUtilities.updateComponentTreeUI(this);
104        }
105
106        public void equationListChanged_add(String EqName) {
107                ListIterator li = solPtsList.listIterator();
108                SolitaryPoint pt;
109                int i;
110                while (li.hasNext()) {
111                        //       System.out.println("update pla oe" );
112                        pt = (SolitaryPoint) li.next();
113                        pt.surfaces.addItem(EqName);
114                }
115        }
116
117        public String save() {
118                String str = "";
119                ListIterator li = solPtsList.listIterator();
120                str += "////////////////// SOLITARY POINTS: /////////////////////////"
121                                + "\n";
122                str += solPtsList.size() + "\n";
123                while (li.hasNext()) {
124                        str += ((SolitaryPoint) li.next()).saveYourself();
125                }
126                return (str);
127        }
128
129        public void copyRadiusToAll(double from, double to, double rad) {
130                int i;
131                SolitaryPoint tmp;
132                for (i = 0; i < solPtsList.size(); i++) {
133                        try {
134                                //    System.out.println("i:"+i);
135                                tmp = ((SolitaryPoint) (solPtsList.elementAt(i)));
136                                ((SolitaryPoint) (solPtsList.elementAt(i))).newFrom = from;
137                                ((SolitaryPoint) (solPtsList.elementAt(i))).oldFrom = from;
138                                ((SolitaryPoint) (solPtsList.elementAt(i))).newTo = to;
139                                ((SolitaryPoint) (solPtsList.elementAt(i))).oldTo = to;
140                                ((SolitaryPoint) (solPtsList.elementAt(i))).radiusSlider
141                                                .setValue((int) (rad / (to - from) * 1000.0));
142                                ((SolitaryPoint) (solPtsList.elementAt(i))).radiusSlider
143                                                .repaint();
144                                String str = "" + rad;
145                                int end = 6;
146                                if (str.length() <= 6) {
147                                        end = str.length();
148                                }
149                                ((SolitaryPoint) (solPtsList.elementAt(i))).radiusLabel
150                                                .setText(str.substring(0, end));
151                        } catch (Exception ex) {
152                                System.out.println("error:" + ex.toString());
153                        }
154                }
155        }
156
157        public void loadSolitaryPoints(BufferedReader bs, String datatype,
158                                int iVersion) {
159                int k;
160                try {
161                        String nix = bs.readLine();
162                        String zeile1;
163                        boolean first = true;
164
165                        for (k = Integer.parseInt(bs.readLine()); k > 0; k--) {
166                                zeile1 = bs.readLine();//) != null) {
167                                newSolitaryPoint();
168                                if (datatype.equals("specify")) {
169                                        String strline;
170                                        String tmpline;
171                                        try {
172                                                bs.mark(255);
173                                                strline = bs.readLine();
174                                                while ((strline.equals("solPtNo:"))
175                                                                || (strline.equals("fromtoval:"))
176                                                                || (strline.equals("surface:"))
177                                                                || (strline.equals("coords:"))) {
178                                                        //          System.out.println("strline:"+strline);
179                                                        if (strline.equals("solPtNo:")) {
180                                                                ((SolitaryPoint) solPtsList.lastElement())
181                                                                                .setSolPtNo(Integer.parseInt(bs
182                                                                                                .readLine()));
183                                                        }
184                                                        if (strline.equals("surface:")) {
185                                                                //        System.out.println("set surface...");
186                                                                tmpline = bs.readLine();
187                                                                if (tmpline.equals("-")) {
188                                                                        ((SolitaryPoint) solPtsList.lastElement())
189                                                                                        .setSurfNo(0);
190                                                                } else {
191                                                                        //            System.out.println("set surface:"+(Integer.parseInt(tmpline)));
192                                                                        ((SolitaryPoint) solPtsList.lastElement())
193                                                                                        .setSurfNo(Integer
194                                                                                                        .parseInt(tmpline));
195                                                                }
196                                                        }
197                                                        if (strline.equals("coords:")) {
198                                                                ((SolitaryPoint) solPtsList.lastElement()).x
199                                                                                .setText(bs.readLine());
200                                                                ((SolitaryPoint) solPtsList.lastElement()).newX = Double
201                                                                                .parseDouble(((SolitaryPoint) solPtsList
202                                                                                                .lastElement()).x.getText());
203                                                                ((SolitaryPoint) solPtsList.lastElement()).oldX = Double
204                                                                                .parseDouble(((SolitaryPoint) solPtsList
205                                                                                                .lastElement()).x.getText());
206                                                                ((SolitaryPoint) solPtsList.lastElement()).y
207                                                                                .setText(bs.readLine());
208                                                                ((SolitaryPoint) solPtsList.lastElement()).newY = Double
209                                                                                .parseDouble(((SolitaryPoint) solPtsList
210                                                                                                .lastElement()).y.getText());
211                                                                ((SolitaryPoint) solPtsList.lastElement()).oldY = Double
212                                                                                .parseDouble(((SolitaryPoint) solPtsList
213                                                                                                .lastElement()).y.getText());
214                                                                ((SolitaryPoint) solPtsList.lastElement()).z
215                                                                                .setText(bs.readLine());
216                                                                ((SolitaryPoint) solPtsList.lastElement()).newZ = Double
217                                                                                .parseDouble(((SolitaryPoint) solPtsList
218                                                                                                .lastElement()).z.getText());
219                                                                ((SolitaryPoint) solPtsList.lastElement()).oldZ = Double
220                                                                                .parseDouble(((SolitaryPoint) solPtsList
221                                                                                                .lastElement()).z.getText());
222                                                        }
223                                                        if (strline.equals("fromtoval:")) {
224                                                                ((SolitaryPoint) solPtsList.lastElement()).oldFrom = Double
225                                                                                .parseDouble(bs.readLine());
226                                                                ((SolitaryPoint) solPtsList.lastElement()).newFrom = ((SolitaryPoint) solPtsList
227                                                                                .lastElement()).oldFrom;
228
229                                                                ((SolitaryPoint) solPtsList.lastElement()).oldTo = Double
230                                                                                .parseDouble(bs.readLine());
231                                                                ((SolitaryPoint) solPtsList.lastElement()).newTo = ((SolitaryPoint) solPtsList
232                                                                                .lastElement()).oldTo;
233
234                                                                ((SolitaryPoint) solPtsList.lastElement()).radiusSlider
235                                                                                .setValue(Integer.parseInt(bs
236                                                                                                .readLine()));
237                                                                ((SolitaryPoint) solPtsList.lastElement())
238                                                                                .updateradiusSliderLabel();
239                                                        }
240                                                        bs.mark(255);
241                                                        strline = bs.readLine();
242                                                } // end while()
243                                                bs.reset();
244                                        } catch (Exception nex) {
245                                                bs.reset();
246                                        }
247                                }
248                                if (datatype.equals("complete") || datatype.equals("onlyeqns")
249                                                || datatype.equals("eqnsvis")) {
250                                        ((SolitaryPoint) solPtsList.lastElement())
251                                                        .setSolPtNo(Integer.parseInt(bs.readLine()));
252                                        ((SolitaryPoint) solPtsList.lastElement())
253                                                        .setSurfNo(Integer.parseInt(bs.readLine()));
254                                        ((SolitaryPoint) solPtsList.lastElement()).x.setText(bs
255                                                        .readLine());
256                                        ((SolitaryPoint) solPtsList.lastElement()).newX = Double
257                                                        .parseDouble(((SolitaryPoint) solPtsList
258                                                                        .lastElement()).x.getText());
259                                        ((SolitaryPoint) solPtsList.lastElement()).oldX = Double
260                                                        .parseDouble(((SolitaryPoint) solPtsList
261                                                                        .lastElement()).x.getText());
262                                        ((SolitaryPoint) solPtsList.lastElement()).y.setText(bs
263                                                        .readLine());
264                                        ((SolitaryPoint) solPtsList.lastElement()).newY = Double
265                                                        .parseDouble(((SolitaryPoint) solPtsList
266                                                                        .lastElement()).y.getText());
267                                        ((SolitaryPoint) solPtsList.lastElement()).oldY = Double
268                                                        .parseDouble(((SolitaryPoint) solPtsList
269                                                                        .lastElement()).y.getText());
270                                        ((SolitaryPoint) solPtsList.lastElement()).z.setText(bs
271                                                        .readLine());
272                                        ((SolitaryPoint) solPtsList.lastElement()).newZ = Double
273                                                        .parseDouble(((SolitaryPoint) solPtsList
274                                                                        .lastElement()).z.getText());
275                                        ((SolitaryPoint) solPtsList.lastElement()).oldZ = Double
276                                                        .parseDouble(((SolitaryPoint) solPtsList
277                                                                        .lastElement()).z.getText());
278                                        ((SolitaryPoint) solPtsList.lastElement()).oldFrom = Double
279                                                        .parseDouble(bs.readLine());
280                                        ((SolitaryPoint) solPtsList.lastElement()).newFrom = ((SolitaryPoint) solPtsList
281                                                        .lastElement()).oldFrom;
282                                        ((SolitaryPoint) solPtsList.lastElement()).oldTo = Double
283                                                        .parseDouble(bs.readLine());
284                                        ((SolitaryPoint) solPtsList.lastElement()).newTo = ((SolitaryPoint) solPtsList
285                                                        .lastElement()).oldTo;
286                                        ((SolitaryPoint) solPtsList.lastElement()).radiusSlider
287                                                        .setValue(Integer.parseInt(bs.readLine()));
288                                        ((SolitaryPoint) solPtsList.lastElement())
289                                                        .updateradiusSliderLabel();
290                                        ((SolitaryPoint) solPtsList.lastElement()).repaint();
291                                }
292                                if (datatype.equals("complete") || datatype.equals("onlystyle")) {
293                                        //        ((SolitaryPoint) solPtsList.lastElement()).cbox.setSelected((Boolean.valueOf(bs.readLine())).booleanValue());
294                                }
295                        }
296                } catch (IOException e) {
297                        System.out.println(e);
298                }
299        }
300
301} // end class SolitaryPointsAdmin
Note: See TracBrowser for help on using the repository browser.