350bd862aaeb4be75005ef3d8304237c7eaa4171
[scilab.git] / scilab / modules / gui / src / java / org / scilab / modules / gui / bridge / tab / SwingScilabStaticPanel.java
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2014 - Scilab Enterprises - Bruno JOFRET
4  *
5  * This file must be used under the terms of the CeCILL.
6  * This source file is licensed as described in the file COPYING, which
7  * you should have received as part of this distribution.  The terms
8  * are also available at
9  * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
10  *
11  */
12
13 package org.scilab.modules.gui.bridge.tab;
14
15 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_AUTORESIZE__;
16 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_AXES_SIZE__;
17 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.__GO_SIZE__;
18
19 import java.awt.Container;
20 import java.awt.Dimension;
21 import java.awt.event.ComponentEvent;
22 import java.awt.event.ComponentListener;
23
24 import javax.swing.JLayeredPane;
25 import javax.swing.SwingUtilities;
26
27 import org.scilab.modules.graphic_objects.figure.Figure;
28 import org.scilab.modules.graphic_objects.graphicController.GraphicController;
29 import org.scilab.modules.gui.SwingViewObject;
30 import org.scilab.modules.gui.bridge.window.SwingScilabWindow;
31 import org.scilab.modules.gui.events.callback.CommonCallBack;
32 import org.scilab.modules.gui.menubar.MenuBar;
33 import org.scilab.modules.gui.textbox.TextBox;
34 import org.scilab.modules.gui.toolbar.ToolBar;
35 import org.scilab.modules.gui.utils.Size;
36
37 public class SwingScilabStaticPanel extends SwingScilabScrollPane implements SwingScilabPanel {
38
39     private Integer id;
40     private TextBox infoBar;
41     private MenuBar menuBar;
42     private ToolBar toolBar;
43     private String eventHandler;
44     private boolean eventHandlerEnabled;
45     private String parentWindowId;
46     private String windowIcon;
47     
48     private JLayeredPane uiContentPane;
49     private JLayeredPane layerdPane;
50
51     public SwingScilabStaticPanel(String figureTitle, Integer figureId, Figure figure) {
52         super(new JLayeredPane(), new JLayeredPane(), figure);
53         uiContentPane = (JLayeredPane) getUIComponent();
54         layerdPane = (JLayeredPane) getGlobalComponent();
55         setVisible(true);
56         
57         layerdPane.setLayout(null);
58         layerdPane.setOpaque(false);
59         
60         uiContentPane.setOpaque(true);
61         uiContentPane.setLayout(null);
62         layerdPane.add(uiContentPane, JLayeredPane.DEFAULT_LAYER + 1, 0);
63
64         layerdPane.setVisible(true);
65         uiContentPane.setVisible(true);
66         
67         /* Manage figure_size property */
68         addComponentListener(new ComponentListener() {
69
70             public void componentShown(ComponentEvent arg0) {
71             }
72
73             public void componentResized(ComponentEvent arg0) {
74
75                 /* Update the figure_size property */
76                 Size parentSize =  SwingScilabWindow.allScilabWindows.get(parentWindowId).getDims();
77                 Integer[] newSize = new Integer[] {parentSize.getWidth(), parentSize.getHeight()};
78
79                 GraphicController.getController().setProperty(id, __GO_SIZE__, newSize);
80
81                 Boolean autoreSize = (Boolean) GraphicController.getController().getProperty(id, __GO_AUTORESIZE__);
82
83                 if (autoreSize != null && autoreSize) {
84                     /* Update the axes_size property */
85                     Integer[] newAxesSize = new Integer[] {getContentPane().getWidth(), getContentPane().getHeight()};
86                     GraphicController.getController().setProperty(id, __GO_AXES_SIZE__, newAxesSize);
87                 }
88             }
89
90             public void componentMoved(ComponentEvent arg0) {
91             }
92
93             public void componentHidden(ComponentEvent arg0) {
94             }
95         });
96
97     }
98
99     public void setId(Integer id) {
100         this.id = id;
101     }
102
103     public Integer getId() {
104         return id;
105     }
106
107     public void update(int property, Object value) {
108         SwingScilabCommonPanel.update(this, property, value);
109     }
110
111     public TextBox getInfoBar() {
112         return infoBar;
113     }
114
115     public void setInfoBar(TextBox infoBar) {
116         this.infoBar = infoBar;
117     }
118
119     public MenuBar getMenuBar() {
120         return menuBar;
121     }
122
123     public void setMenuBar(MenuBar menuBar) {
124         this.menuBar = menuBar;
125     }
126
127     public ToolBar getToolBar() {
128         return toolBar;
129     }
130
131     public void setToolBar(ToolBar toolBar) {
132         this.toolBar = toolBar;
133     }
134
135     public void setEventHandler(String eventHandler) {
136         this.eventHandler = eventHandler;
137     }
138
139     public void setEventHandlerEnabled(boolean enabled) {
140         this.eventHandlerEnabled = enabled;
141     }
142
143     public void setParentWindowId(String parentWindowId) {
144         this.parentWindowId = parentWindowId;
145     }
146
147     public void setWindowIcon(String windowIcon) {
148         this.windowIcon = windowIcon;
149     }
150
151     public void addMember(SwingViewObject member) {
152         SwingScilabCommonPanel.addMember(this, member);
153     }
154
155     public String getParentWindowId() {
156         return parentWindowId;
157     }
158
159     public SwingScilabWindow getParentWindow() {
160         return (SwingScilabWindow) SwingUtilities.getAncestorOfClass(SwingScilabWindow.class, this);
161     }
162
163
164     public JLayeredPane getWidgetPane() {
165         return uiContentPane;
166     }
167
168     public void setCallback(CommonCallBack callback) {
169         // TODO Auto-generated method stub
170         
171     }
172
173     public Container getContentPane() {
174         return this.getAsContainer();
175     }
176     
177     public void close() {
178     }
179
180     
181 }