Statistics
| Revision:

svn-gvsig-desktop / trunk / applications / appgvSIG / src / com / iver / cit / gvsig / project / documents / view / gui / View.java @ 7571

History | View | Annotate | Download (18.9 KB)

1
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
2
 *
3
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
18
 *
19
 * For more information, contact:
20
 *
21
 *  Generalitat Valenciana
22
 *   Conselleria d'Infraestructures i Transport
23
 *   Av. Blasco Ib??ez, 50
24
 *   46010 VALENCIA
25
 *   SPAIN
26
 *
27
 *      +34 963862235
28
 *   gvsig@gva.es
29
 *      www.gvsig.gva.es
30
 *
31
 *    or
32
 *
33
 *   IVER T.I. S.A
34
 *   Salamanca 50
35
 *   46005 Valencia
36
 *   Spain
37
 *
38
 *   +34 963163400
39
 *   dac@iver.es
40
 */
41
package com.iver.cit.gvsig.project.documents.view.gui;
42

    
43
import java.awt.BorderLayout;
44
import java.awt.Color;
45
import java.awt.Dimension;
46
import java.awt.image.BufferedImage;
47
import java.beans.PropertyChangeEvent;
48
import java.beans.PropertyChangeListener;
49
import java.util.HashMap;
50
import java.util.Iterator;
51

    
52
import javax.swing.JPanel;
53
import javax.swing.JSplitPane;
54

    
55
import org.cresques.cts.IProjection;
56

    
57
import com.iver.andami.PluginServices;
58
import com.iver.andami.messages.NotificationManager;
59
import com.iver.andami.ui.mdiManager.IWindowListener;
60
import com.iver.andami.ui.mdiManager.IWindowTransform;
61
import com.iver.andami.ui.mdiManager.SingletonWindow;
62
import com.iver.andami.ui.mdiManager.WindowInfo;
63
import com.iver.cit.gvsig.fmap.ColorEvent;
64
import com.iver.cit.gvsig.fmap.ExtentEvent;
65
import com.iver.cit.gvsig.fmap.MapContext;
66
import com.iver.cit.gvsig.fmap.MapControl;
67
import com.iver.cit.gvsig.fmap.ProjectionEvent;
68
import com.iver.cit.gvsig.fmap.ViewPortListener;
69
import com.iver.cit.gvsig.fmap.core.v02.FConstant;
70
import com.iver.cit.gvsig.fmap.layers.FLayer;
71
import com.iver.cit.gvsig.fmap.layers.FLayers;
72
import com.iver.cit.gvsig.fmap.layers.FLyrVect;
73
import com.iver.cit.gvsig.fmap.tools.ZoomOutRightButtonListener;
74
import com.iver.cit.gvsig.fmap.tools.Behavior.Behavior;
75
import com.iver.cit.gvsig.fmap.tools.Behavior.MouseMovementBehavior;
76
import com.iver.cit.gvsig.fmap.tools.Behavior.MoveBehavior;
77
import com.iver.cit.gvsig.fmap.tools.Behavior.PointBehavior;
78
import com.iver.cit.gvsig.fmap.tools.Behavior.PolygonBehavior;
79
import com.iver.cit.gvsig.fmap.tools.Behavior.PolylineBehavior;
80
import com.iver.cit.gvsig.fmap.tools.Behavior.RectangleBehavior;
81
import com.iver.cit.gvsig.gui.toolListeners.AreaListener;
82
import com.iver.cit.gvsig.gui.toolListeners.InfoListener;
83
import com.iver.cit.gvsig.gui.toolListeners.LinkListener;
84
import com.iver.cit.gvsig.gui.toolListeners.MeasureListener;
85
import com.iver.cit.gvsig.gui.toolListeners.PanListener;
86
import com.iver.cit.gvsig.gui.toolListeners.PointSelectListener;
87
import com.iver.cit.gvsig.gui.toolListeners.PolygonSelectListener;
88
import com.iver.cit.gvsig.gui.toolListeners.RectangleSelectListener;
89
import com.iver.cit.gvsig.gui.toolListeners.SelectImageListener;
90
import com.iver.cit.gvsig.gui.toolListeners.StatusBarListener;
91
import com.iver.cit.gvsig.gui.toolListeners.ZoomInListener;
92
import com.iver.cit.gvsig.gui.toolListeners.ZoomOutListener;
93
import com.iver.cit.gvsig.gui.toolListeners.ZoomPixelCursorListener;
94
import com.iver.cit.gvsig.project.documents.view.MapOverview;
95
import com.iver.cit.gvsig.project.documents.view.ProjectView;
96
import com.iver.cit.gvsig.project.documents.view.toc.gui.TOC;
97
import com.iver.utiles.console.JConsole;
98
import com.iver.utiles.console.JDockPanel;
99
import com.iver.utiles.console.ResponseListener;
100
import com.iver.utiles.console.jedit.JEditTextArea;
101
import com.iver.utiles.exceptionHandling.ExceptionListener;
102

    
103

    
104
/**
105
 * <p>
106
 * <b>Class View</b>. This class represents the gvSIG specific internal window where the maps are
107
 * displayed and where the events coming from the user are captured.
108
 * </p>
109
 * <p>
110
 * It is composed by three main visual areas:
111
 * </p>
112
 * <ol>
113
 *          <li>
114
 *     <b>Map control</b>: the map area located in the right area of the window. It takes up
115
 *     the biggest part of the window.
116
 *   </li>
117
 *          <li>
118
 *     <b>Table of contents (TOC)</b>: is a list of layers displayed in the view. The TOC is
119
 *     located on the left-top corner of the View and is the place where the user can modify
120
 *     the order, the legends, the visibility and other properties of the layers.
121
 *   </li>
122
 *          <li>
123
 *     <b>Map overview</b>: is a small MapControl located in the left-bottom corner of the
124
 *     View where the user can put some layers which summarizes the view. It is used to make
125
 *     the navigation easier and faster.
126
 *   </li>
127
 * </ol>
128
 *
129
 * @see com.iver.cit.gvsig.fmap.MapControl.java <br>
130
 *                 com.iver.cit.gvsig.gui.toc.TOC.java <br>
131
 *                 com.iver.cit.gvsig.gui.MapOverview.java <br>
132
 * @author vcn
133
 */
134
public class View extends BaseView {
135

    
136
    /** DOCUMENT ME! */
137

    
138
    private JConsole console;
139
        private JDockPanel dockConsole = null;
140
        protected ResponseAdapter consoleResponseAdapter = new ResponseAdapter();
141
        protected boolean isShowConsole=false;
142
        /**
143
     * Creates a new View object.
144
     */
145
    public View() {
146
            this.setName("View");
147
        //this.setName(Utilities.getMessage(this, "Vista")+ " : "+modelo.getName());
148
        // this.setPreferredSize(new Dimension(500, 300));
149
        initComponents();
150
        hideConsole();
151
        getConsolePanel().addResponseListener(consoleResponseAdapter);
152
        /* getConsolePanel().addContainerListener(new ContainerAdapter() {
153
                public void componentAdded(ContainerEvent e) {
154
                                // Mostramos consola
155
                                SwingUtilities.invokeLater(new Runnable() {
156
                                         public void run() {
157

158
                                                 getMapControl().doLayout(); // drawMap(false);
159
                                                 getConsolePanel().invalidate();
160
                                                 getConsolePanel().repaint();
161
                                                 getMapControl().repaint();
162
                                                 getConsolePanel().getTxt().doLayout();
163
                                     }
164
                                });
165
                    }
166

167
                    public void componentRemoved(ContainerEvent e) {
168
                            // Ocultamos consola
169
                                SwingUtilities.invokeLater(new Runnable() {
170
                                        public void run() {
171
                                                getMapControl().repaint();
172
                                    }
173
                               });
174

175
                    }
176

177
        }); */
178
    }
179

    
180
    /**
181
     * DOCUMENT ME!
182
     *
183
     * @param model DOCUMENT ME!
184
     */
185
    public void setModel(ProjectView model) {
186
        this.modelo = model;
187
        //Se registra como listener de cambios en FMap
188
        MapContext fmap = modelo.getMapContext();
189

    
190
        FLayers layers=fmap.getLayers();
191
                for (int i=0;i<layers.getLayersCount();i++){
192
                        if (layers.getLayer(i).isEditing() && layers.getLayer(i) instanceof FLyrVect){
193
                                this.showConsole();
194
                        }
195
                }
196
                model.setAndamiView(this);
197

    
198
                //Se configura el mapControl
199
        m_MapControl.setMapContext(fmap);
200
        m_TOC.setMapContext(fmap);
201
        m_MapControl.setBackground(new Color(255, 255, 255));
202
        if (modelo.getMapOverViewContext()!=null){
203
                m_MapLoc.setModel(modelo.getMapOverViewContext());
204
        }
205
        model.addPropertyChangeListener(new PropertyChangeListener() {
206
                        public void propertyChange(PropertyChangeEvent evt) {
207
                                if (evt.getPropertyName().equals("name")){
208
                                        PluginServices.getMDIManager().getWindowInfo(View.this).setTitle("Vista: " + (String)evt.getNewValue());
209
                                }
210
                        }
211
                });
212
        if (m_MapControl.getViewPort() != null){
213
                m_MapControl.getViewPort().addViewPortListener(new ViewPortListener() {
214
                                public void extentChanged(ExtentEvent e) {
215
                                        if (PluginServices.getMainFrame() != null){
216
                                                PluginServices.getMainFrame().getStatusBar().setControlValue("scale",String.valueOf(m_MapControl.getMapContext().getScaleView()));
217
                                                PluginServices.getMainFrame().getStatusBar().setMessage("projection", getMapControl().getViewPort().getProjection().getAbrev());
218
                                        }
219
                                }
220

    
221
                                public void backColorChanged(ColorEvent e) {
222
                                }
223

    
224
                                public void projectionChanged(ProjectionEvent e) {
225
                                        m_MapLoc.setProjection(e.getNewProjection());
226
                                }
227
                        });
228
              }
229
    }
230
    public JConsole getConsolePanel(){
231
            if (console==null){
232
                    console=new JConsole();
233
                    // Para distinguir cuando se est? escribiendo sobre la consola y cuando no.
234
                    console.setJTextName("CADConsole");
235
            }
236
            return console;
237
    }
238

    
239
    private JDockPanel getDockConsole()
240
    {
241
            if (dockConsole == null)
242
            {
243
                    dockConsole = new JDockPanel(getConsolePanel());
244
            }
245
            return dockConsole;
246
    }
247

    
248

    
249
    public void addConsoleListener(String prefix, ResponseListener listener) {
250
                consoleResponseAdapter.putSpaceListener(prefix, listener);
251

    
252
        }
253

    
254
        public void removeConsoleListener(ResponseListener listener) {
255
                consoleResponseAdapter.deleteListener(listener);
256

    
257
        }
258

    
259
        public void focusConsole(String text) {
260
                getConsolePanel().addResponseText(text);
261
                // TODO: HACE ESTO CON EL KEYBOARDFOCUSMANAGER
262
//                KeyboardFocusManager kfm = KeyboardFocusManager.getCurrentKeyboardFocusManager();
263
//                kfm.focusNextComponent(getConsolePanel());
264
                System.err.println("Asigno el foco a la consola");
265

    
266
                JEditTextArea jeta=getConsolePanel().getTxt();
267
                jeta.requestFocusInWindow();
268
                jeta.setCaretPosition(jeta.getText().length());
269

    
270

    
271
//                FocusManager fm=FocusManager.getCurrentManager();
272
//                fm.focusNextComponent(getConsolePanel());
273

    
274
        }
275

    
276

    
277
        public void hideConsole() {
278
                isShowConsole=false;
279
                /* removeAll();
280
                //JSplitPane split = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
281
                JSplitPane tempMainSplit = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
282
                tempMainSplit.setPreferredSize(new Dimension(500, 300));
283
                if (!isPalette()){
284
                        JSplitPane tempSplitToc = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
285
                        tempSplitToc.setTopComponent((TOC) m_TOC);
286
                        tempSplitToc.setBottomComponent(m_MapLoc);
287
                        tempSplitToc.setResizeWeight(0.7);
288
                        tempMainSplit.setLeftComponent(tempSplitToc);
289
                }else{
290
                        tempMainSplit.setLeftComponent(m_TOC);
291
                }
292
                m_TOC.setVisible(true);
293
                tempMainSplit.setRightComponent(m_MapControl);
294
                //split.setBottomComponent(getConsolePanel());
295
                //split.setTopComponent(tempMainSplit);
296
                // split.setResizeWeight(0.9);
297
                this.setLayout(new BorderLayout());
298
                this.add(tempMainSplit, BorderLayout.CENTER); */
299
                getDockConsole().setVisible(false);
300

    
301
        }
302

    
303
        public void showConsole() {
304
                if (isShowConsole)
305
                        return;
306
                isShowConsole=true;
307
                /* removeAll();
308
                JSplitPane split = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
309
                JSplitPane tempMainSplit = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
310
                tempMainSplit.setPreferredSize(new Dimension(500, 300));
311
                if (!isPalette()){
312
                        JSplitPane tempSplitToc = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
313
                        tempSplitToc.setTopComponent((TOC) m_TOC);
314
                        tempSplitToc.setBottomComponent(m_MapLoc);
315
                        tempSplitToc.setResizeWeight(0.7);
316
                        tempMainSplit.setLeftComponent(tempSplitToc);
317
                }else{
318
                        tempMainSplit.setLeftComponent(m_TOC);
319
                }
320
                m_TOC.setVisible(true);
321
                tempMainSplit.setRightComponent(m_MapControl);
322
                split.setBottomComponent(getConsolePanel());
323
                split.setTopComponent(tempMainSplit);
324
                split.setResizeWeight(0.9);
325
                this.setLayout(new BorderLayout());
326
                this.add(split, BorderLayout.CENTER); */
327
                getMapControl().remove(getDockConsole());
328
                // getConsolePanel().setPreferredSize(new Dimension(200, 150));
329
                getMapControl().setLayout(new BorderLayout());
330
                getMapControl().add(getDockConsole(), BorderLayout.SOUTH);
331
                getDockConsole().setVisible(true);
332

    
333
        }
334

    
335
        private class ResponseAdapter implements ResponseListener{
336

    
337
                private HashMap spaceListener = new HashMap();
338

    
339
                public void putSpaceListener(String namespace, ResponseListener listener){
340
                        spaceListener.put(namespace, listener);
341
                }
342

    
343
                /**
344
                 * @see com.iver.utiles.console.ResponseListener#acceptResponse(java.lang.String)
345
                 */
346
                public void acceptResponse(String response) {
347
                        boolean nameSpace = false;
348
                        int n = -1;
349
                        if (response != null){
350
                                if ((n = response.indexOf(':')) != -1){
351
                                        nameSpace = true;
352
                                }
353
                        }
354

    
355
                        if (nameSpace){
356
                                ResponseListener listener = (ResponseListener) spaceListener.get(response.substring(0, n));
357
                                if (listener != null)
358
                                listener.acceptResponse(response.substring(n+1));
359
                        }else{
360
                                Iterator i = spaceListener.values().iterator();
361
                                while (i.hasNext()) {
362
                                        ResponseListener listener = (ResponseListener) i.next();
363
                                        listener.acceptResponse(response);
364
                                }
365
                        }
366
                }
367

    
368
                /**
369
                 * @param listener
370
                 */
371
                public void deleteListener(ResponseListener listener) {
372
                        Iterator i = spaceListener.keySet().iterator();
373
                        while (i.hasNext()) {
374
                                String namespace = (String) i.next();
375
                                ResponseListener l = (ResponseListener) spaceListener.get(namespace);
376
                                if (l == listener){
377
                                        spaceListener.remove(namespace);
378
                                }
379
                        }
380
                }
381

    
382
        }
383

    
384

    
385

    
386

    
387
    /**
388
         * DOCUMENT ME!
389
         */
390
    protected void initComponents() { // GEN-BEGIN:initComponents
391
        m_MapControl = new MapControl(); // Default is paintEnabled = false.
392
                                                                                        // Remember to activate it
393
        m_MapControl.addExceptionListener(mapControlExceptionListener);
394
        // modelo.setMapContext(m_MapControl.getMapContext());
395

    
396
        // m_MapControl.setAcceptEvents(true); Lo comento porque ya se hace en el setModel
397
        m_TOC = new TOC();
398

    
399

    
400
        // Ponemos el localizador
401
        m_MapLoc = new MapOverview(m_MapControl);
402
        m_MapLoc.setPreferredSize(new Dimension(150, 200));
403
                removeAll();
404
                //JSplitPane split = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
405
                tempMainSplit = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
406
                tempMainSplit.setPreferredSize(new Dimension(500, 300));
407
                if (!isPalette()){
408
                        JSplitPane tempSplitToc = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
409
                        tempSplitToc.setTopComponent(m_TOC);
410
                        tempSplitToc.setBottomComponent(m_MapLoc);
411
                        tempSplitToc.setResizeWeight(0.7);
412
                        tempMainSplit.setLeftComponent(tempSplitToc);
413
                }else{
414
                        tempMainSplit.setLeftComponent(m_TOC);
415
                }
416
                m_TOC.setVisible(true);
417
                tempMainSplit.setRightComponent(m_MapControl);
418
                //split.setBottomComponent(getConsolePanel());
419
                //split.setTopComponent(tempMainSplit);
420
                // split.setResizeWeight(0.9);
421
                this.setLayout(new BorderLayout());
422
                this.add(tempMainSplit, BorderLayout.CENTER);
423

    
424
        // hideConsole();
425

    
426

    
427

    
428

    
429
        //Listener de eventos de movimiento que pone las coordenadas del rat?n en la barra de estado
430
        StatusBarListener sbl = new StatusBarListener(m_MapControl);
431

    
432
        // Zoom out (pinchas y el mapa se centra y te muestra m?s).
433
        // No es dibujando un rect?ngulo, es solo pinchando.
434

    
435
        ZoomOutListener zol = new ZoomOutListener(m_MapControl);
436
        m_MapControl.addMapTool("zoomOut", new Behavior[]{new PointBehavior(zol), new MouseMovementBehavior(sbl)});
437

    
438
        // pan
439

    
440
        PanListener pl = new PanListener(m_MapControl);
441
        m_MapControl.addMapTool("pan", new Behavior[]{new MoveBehavior(pl), new MouseMovementBehavior(sbl)});
442

    
443
        // Medir
444

    
445
        MeasureListener mli = new MeasureListener(m_MapControl);
446
        m_MapControl.addMapTool("medicion", new Behavior[]{new PolylineBehavior(mli), new MouseMovementBehavior(sbl)});
447

    
448
        // Area
449

    
450
        AreaListener ali = new AreaListener(m_MapControl);
451
        m_MapControl.addMapTool("area", new Behavior[]{new PolygonBehavior(ali), new MouseMovementBehavior(sbl)});
452

    
453
        //Seleccion por punto
454
        PointSelectListener psl = new PointSelectListener(m_MapControl);
455
        m_MapControl.addMapTool("pointSelection", new Behavior[]{new PointBehavior(psl), new MouseMovementBehavior(sbl)});
456

    
457
        //Info por punto
458
        InfoListener il = new InfoListener(m_MapControl);
459
        m_MapControl.addMapTool("info", new Behavior[]{new PointBehavior(il), new MouseMovementBehavior(sbl)});
460

    
461
//      Link por punto
462
        LinkListener ll = new LinkListener(m_MapControl);
463
        m_MapControl.addMapTool("link", new Behavior[]{new PointBehavior(ll), new MouseMovementBehavior(sbl)});
464

    
465
        //Selecci?n por rect?ngulo
466
        RectangleSelectListener rsl = new RectangleSelectListener(m_MapControl);
467
        m_MapControl.addMapTool("rectSelection", new Behavior[]{new RectangleBehavior(rsl), new MouseMovementBehavior(sbl)});
468

    
469
        //Selecci?n por pol?gono
470
        PolygonSelectListener poligSel = new PolygonSelectListener(m_MapControl);
471
        m_MapControl.addMapTool("polSelection", new Behavior[]{new PolygonBehavior(poligSel), new MouseMovementBehavior(sbl)});
472

    
473
        // Zoom por rect?ngulo
474
        ZoomOutRightButtonListener zoil = new ZoomOutRightButtonListener(m_MapControl);
475
        ZoomInListener zil = new ZoomInListener(m_MapControl);
476
        m_MapControl.addMapTool("zoomIn", new Behavior[]{new RectangleBehavior(zil),
477
                                        new PointBehavior(zoil), new MouseMovementBehavior(sbl)});
478

    
479
        SelectImageListener sil = new SelectImageListener(m_MapControl);
480
        m_MapControl.addMapTool("selectImage", new Behavior[]{
481
                                new PointBehavior(sil), new MouseMovementBehavior(sbl)});
482

    
483
        ZoomPixelCursorListener zp = new ZoomPixelCursorListener(m_MapControl);
484
        m_MapControl.addMapTool("zoom_pixel_cursor", new Behavior[]{new PointBehavior(zp), new MouseMovementBehavior(sbl)});
485

    
486
        m_MapControl.setTool("zoomIn"); // Por defecto
487
        // m_MapControl.setPaintEnabled(true);
488
    }
489

    
490
    /**
491
     * DOCUMENT ME!
492
     */
493
   /*public void openPropertiesWindow() {
494
    }
495
*/
496
    /**
497
     * DOCUMENT ME!
498
     */
499
  /*  public void openQueryWindow() {
500
    }
501
*/
502

    
503

    
504
    /**
505
     * @see com.iver.mdiApp.ui.MDIManager.IWindow#windowActivated()
506
     */
507
    public void windowActivated() {
508
            PluginServices.getMainFrame().getStatusBar().setMessage("units",
509
                            FConstant.NAMES[getMapControl().getMapContext().getViewPort().getDistanceUnits()]);
510
            PluginServices.getMainFrame().getStatusBar().setControlValue("scale",String.valueOf(m_MapControl.getMapContext().getScaleView()));
511
                PluginServices.getMainFrame().getStatusBar().setMessage("projection", getMapControl().getViewPort().getProjection().getAbrev());
512
    }
513

    
514
        public void toPalette() {
515
                isPalette=true;
516
                m_MapLoc.setPreferredSize(new Dimension(200,150));
517
                m_MapLoc.setSize(new Dimension(200,150));
518
                movp=new MapOverViewPalette(m_MapLoc,this);
519
                PluginServices.getMDIManager().addWindow(movp);
520
                FLayer[] layers=getModel().getMapContext().getLayers().getActives();
521
                if (layers.length>0 && layers[0] instanceof FLyrVect){
522
                        if (((FLyrVect)layers[0]).isEditing()){
523
                                showConsole();
524
                                return;
525
                        }
526
                }
527
                hideConsole();
528

    
529
        }
530

    
531
        public void restore() {
532
                isPalette=false;
533
                PluginServices.getMDIManager().closeWindow(movp);
534
                FLayer[] layers=getModel().getMapContext().getLayers().getActives();
535
                if (layers.length>0 && layers[0] instanceof FLyrVect){
536
                        if (((FLyrVect)layers[0]).isEditing()){
537
                                showConsole();
538
                                return;
539
                        }
540
                }
541
                hideConsole();
542
                JSplitPane tempSplitToc = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
543
                tempSplitToc.setTopComponent(m_TOC);
544
                tempSplitToc.setBottomComponent(m_MapLoc);
545
                tempSplitToc.setResizeWeight(0.7);
546
                tempMainSplit.setLeftComponent(tempSplitToc);
547
        }
548

    
549
}