--- /dev/null
+/*****************************************************************************
+ * Copyright Igor Barma, Eric Brun, Alexandre Desoubeaux, Christian Martel,
+ * (2 décembre 2008)
+ *
+ * Ce logiciel est un programme informatique servant à l'évaluation des
+ * compétences.
+ *
+ * Ce logiciel est régi par la licence CeCILL soumise au droit français et
+ * respectant les principes de diffusion des logiciels libres. Vous pouvez
+ * utiliser, modifier et/ou redistribuer ce programme sous les conditions
+ * de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA
+ * sur le site "http://www.cecill.info".
+ *
+ * En contrepartie de l'accessibilité au code source et des droits de copie,
+ * de modification et de redistribution accordés par cette licence, il n'est
+ * offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons,
+ * seule une responsabilité restreinte pèse sur l'auteur du programme, le
+ * titulaire des droits patrimoniaux et les concédants successifs.
+ *
+ * A cet égard l'attention de l'utilisateur est attirée sur les risques
+ * associés au chargement, à l'utilisation, à la modification et/ou au
+ * développement et à la reproduction du logiciel par l'utilisateur étant
+ * donné sa spécificité de logiciel libre, qui peut le rendre complexe à
+ * manipuler et qui le réserve donc à des développeurs et des professionnels
+ * avertis possédant des connaissances informatiques approfondies. Les
+ * utilisateurs sont donc invités à charger et tester l'adéquation du
+ * logiciel à leurs besoins dans des conditions permettant d'assurer la
+ * sécurité de leurs systèmes et ou de leurs données et, plus généralement,
+ * à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.
+ *
+ * Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
+ * pris connaissance de la licence CeCILL, et que vous en avez accepté les
+ * termes.
+ *******************************************************************************/
+package com.pentila.evalcomp.client.mainTab;
+
+
+
+
+import com.google.gwt.user.client.Cookies;
+
+import com.gwtext.client.core.Ext;
+import com.gwtext.client.core.Position;
+import com.gwtext.client.widgets.BoxComponent;
+import com.gwtext.client.widgets.Component;
+import com.gwtext.client.widgets.ToolTip;
+
+
+import com.gwtext.client.widgets.Panel;
+import com.gwtext.client.widgets.TabPanel;
+
+import com.gwtext.client.widgets.event.PanelListenerAdapter;
+
+import com.gwtext.client.widgets.event.TabPanelListenerAdapter;
+import com.gwtext.client.widgets.layout.FitLayout;
+import com.gwtext.client.widgets.layout.RowLayout;
+import com.gwtext.client.widgets.layout.RowLayoutData;
+import com.pentila.evalcomp.client.i18n.Messages;
+import com.pentila.evalcomp.client.utilities.Tools;
+import com.pentila.evalcomp.client.widget.MainCenterPanel;
+import com.pentila.evalcomp.client.widget.SmartTreeTodoListWidget;
+import com.smartgwt.client.types.Side;
+import com.smartgwt.client.widgets.events.MouseOutEvent;
+import com.smartgwt.client.widgets.events.MouseOutHandler;
+import com.smartgwt.client.widgets.tab.Tab;
+import com.smartgwt.client.widgets.tab.TabSet;
+import com.smartgwt.client.widgets.tab.events.TabSelectedEvent;
+import com.smartgwt.client.widgets.tab.events.TabSelectedHandler;
+
+/**
+ * The Class TodoListTab.
+ */
+public class TodoListTab extends Panel {
+
+ /** The content v panel. */
+ private Panel contentVPanel;
+
+ /** The tree. */
+ private SmartTodoListWidget grid;
+
+ private SmartTreeTodoListWidget tree;
+
+ /** The mcp. */
+ private MainCenterPanel mcp;
+
+ /** The content. */
+ private Panel content;
+
+ private TabSet tabPanel;
+
+ /**
+ * Instantiates a new todo list tab.
+ *
+ * @param mcp the mcp
+ */
+ public TodoListTab(MainCenterPanel mcp) {
+ super(Messages.getString("Taches"));
+ this.mcp = mcp;
+ this.setIconCls("iconTodolist32");
+ setLayout(new RowLayout());
+ setBorder(false);
+ setPaddings(2);
+
+ contentVPanel = new Panel();
+ contentVPanel.setPaddings(5);
+
+
+ content = new Panel();
+ content.setBorder(false);
+ content.setLayout(new FitLayout());
+ content.setPaddings(5);
+
+
+
+ tabPanel = new TabSet();
+
+ tabPanel.setTabBarPosition(Side.BOTTOM);
+ tabPanel.setTabBarAlign(Side.LEFT);
+
+
+
+
+ /*
+ tabPanel.setTabPosition(Position.BOTTOM);
+ tabPanel.setResizeTabs(true);
+ tabPanel.setMinTabWidth(115);
+ tabPanel.setTabWidth(135);
+ */
+
+ String taskView = Cookies.getCookie("taskView");
+ if (taskView == null || taskView.equals("tree")){
+ tabPanel.setSelectedTab(0);
+ }else{
+ tabPanel.setSelectedTab(1);
+ }
+
+ add(contentVPanel, new RowLayoutData(30));
+ add(content);
+ }
+
+ /**
+ * Initialize interface.
+ */
+ public void initializeInterface() {
+
+
+ //Tab tab1 = new Tab(Messages.getString("arborescence"), Tools.getBaseURL() + "images/chart_organisation.png");
+ Tab tab1 = new Tab();
+ tab1.setIcon(Tools.getBaseURL() + "images/chart_organisation.png");
+ tab1.setAttribute("tabId", "tree");
+ tab1.setPrompt(Messages.getString("arborescence"));
+ //tab1.setWidth(100);
+
+ Tab tab2 = new Tab();
+ tab2.setIcon(Tools.getBaseURL() + "images/application_view_list.png");
+ tab2.setPrompt(Messages.getString("liste"));
+ //Tab tab2 = new Tab(Messages.getString("liste"), Tools.getBaseURL() + "images/application_view_list.png");
+ tab2.setAttribute("tabId", "list");
+
+
+
+ //tab2.setWidth(100);
+
+ tabPanel.setTabs(tab1, tab2);
+
+
+
+ tabPanel.setTabBarThickness(20);
+
+ final TodoListTab me = this;
+
+ tabPanel.addTabSelectedHandler(new TabSelectedHandler() {
+
+ @Override
+ public void onTabSelected(TabSelectedEvent event) {
+
+ Tab selectedTab = event.getTab();
+
+ if (selectedTab.getAttribute("tabId").equals("tree")){
+
+
+
+ Cookies.setCookie("taskView", "tree");
+ if (tree == null) {
+
+
+
+ tree = new SmartTreeTodoListWidget(mcp, me);
+ selectedTab.setPane(tree);
+ tree.initializeInterface();
+ tree.updateTodoList();
+ //selectedTab.doLayout();
+ }
+
+
+
+ }else if (selectedTab.getAttribute("tabId").equals("list")){
+ Cookies.setCookie("taskView", "list");
+ if (grid == null) {
+
+
+ grid = new SmartTodoListWidget(mcp, me);
+ grid.initializeInterface();
+
+
+ grid.updateTodoList();
+ selectedTab.setPane(grid);
+
+ //selectedTab.setSize(tabPanel.getInnerWidth()-2, tabPanel.getInnerHeight());
+ //selectedTab.doLayout();
+
+ }
+
+
+
+ }
+
+ }
+
+
+ });
+
+
+ content.add(tabPanel);
+ content.addListener(new PanelListenerAdapter() {
+
+ public void onResize(BoxComponent component, int adjWidth,
+ int adjHeight, int rawWidth, int rawHeight) {
+ if (tabPanel != null){
+ int containerW = content.getInnerWidth();
+ int containerH = content.getInnerHeight();
+
+ if (tabPanel.getWidth() != containerW -10
+ || tabPanel.getHeight() != containerH - 10) {
+
+ if (containerW -10 > 0 && containerH - 10 > 0) {
+ tabPanel.resizeTo(containerW -10, containerH - 10 );
+ }
+
+ }
+ }
+ }
+
+ public void onDestroy(Component component) {
+ if (tabPanel != null){
+ tabPanel.destroy();
+ }
+ }
+ });
+
+ }
+
+ public void setContentVPanelHtml(String html){
+ contentVPanel.setHtml(html);
+ }
+
+ public static void setPreviousStep(String processID, String activityID) {
+ String taskView = Cookies.getCookie("taskView");
+ if (taskView == null || taskView.equals("tree")){
+ SmartTreeTodoListWidget.setPreviousStep(processID, activityID);
+ }else{
+
+ SmartTodoListWidget.setPreviousStep(processID, activityID);
+
+ }
+
+ }
+
+
+}