1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 28 package ifc.awt.tree; 29 30 import com.sun.star.awt.tree.TreeDataModelEvent; 31 import com.sun.star.awt.tree.XMutableTreeNode; 32 import com.sun.star.awt.tree.XTreeDataModel; 33 import com.sun.star.awt.tree.XTreeDataModelListener; 34 import com.sun.star.awt.tree.XTreeNode; 35 import com.sun.star.lang.EventObject; 36 import lib.MultiMethodTest; 37 import lib.Status; 38 import lib.StatusException; 39 40 /** 41 * Testing <code>com.sun.star.awt.tree.XTreeDataModel</code> 42 * interface methods : 43 * <ul> 44 * <li><code> createNode()</code></li> 45 * <li><code> setRoot()</code></li> 46 * </ul> <p> 47 * Test is <b> NOT </b> multithread compilant. <p> 48 * 49 * @see com.sun.star.awt.tree.XTreeDataModel 50 */ 51 public class _XTreeDataModel extends MultiMethodTest { 52 53 public XTreeDataModel oObj = null; 54 55 private XMutableTreeNode mNewNode = null; 56 57 XTreeDataModelListener mListener1 = new myEventListener1(); 58 59 XTreeDataModelListener mListener2 = new myEventListener2(); 60 61 XTreeDataModelListenerEvent mListenerEvent = null; 62 63 boolean mTreeStructureChanged1 = false; 64 65 boolean mTreeStructureChanged2 = false; 66 67 public static interface XTreeDataModelListenerEvent{ 68 public void fireEvent(); 69 } 70 71 public class myEventListener1 implements XTreeDataModelListener{ 72 public void treeNodesChanged(TreeDataModelEvent treeDataModelEvent) { 73 log.println("Listener 1: treeNodesChanged"); 74 } 75 76 public void treeNodesInserted(TreeDataModelEvent treeDataModelEvent) { 77 log.println("Listener 1: treeNodesInserted"); 78 } 79 80 public void treeNodesRemoved(TreeDataModelEvent treeDataModelEvent) { 81 log.println("Listener 1: treeNodesRemoved"); 82 } 83 84 public void treeStructureChanged(TreeDataModelEvent treeDataModelEvent) { 85 log.println("Listener 1: treeStructureChanged"); 86 mTreeStructureChanged1 = true; 87 } 88 89 public void disposing(EventObject eventObject) { 90 log.println("Listener 1: disposing"); 91 } 92 } 93 94 public class myEventListener2 implements XTreeDataModelListener{ 95 public void treeNodesChanged(TreeDataModelEvent treeDataModelEvent) { 96 log.println("Listener 2: treeNodesChanged"); 97 } 98 99 public void treeNodesInserted(TreeDataModelEvent treeDataModelEvent) { 100 log.println("Listener 2: treeNodesInserted"); 101 } 102 103 public void treeNodesRemoved(TreeDataModelEvent treeDataModelEvent) { 104 log.println("Listener 2: treeNodesRemoved"); 105 } 106 107 public void treeStructureChanged(TreeDataModelEvent treeDataModelEvent) { 108 log.println("Listener 2: treeStructureChanged"); 109 mTreeStructureChanged2 = true; 110 } 111 112 public void disposing(EventObject eventObject) { 113 log.println("Listener 2: disposing"); 114 } 115 116 } 117 118 public void before(){ 119 mListenerEvent = (XTreeDataModelListenerEvent) tEnv.getObjRelation("XTreeDataModelListenerEvent"); 120 if (mListenerEvent == null) { 121 throw new StatusException(Status.failed("ERROR: could not get object relation 'XTreeDataModelListenerEvent'\n" + 122 "This object relation must be kind of 'ifc.awt.tree._XTreeDataModel.XTreeDataModelListenerEvent'")); 123 } 124 } 125 126 /** 127 * Gets the title and compares it to the value set in 128 * <code>setTitle</code> method test. <p> 129 * Has <b>OK</b> status is set/get values are equal. 130 * The following method tests are to be completed successfully before : 131 * <ul> 132 * <li> <code> setTitle </code> </li> 133 * </ul> 134 */ 135 public void _getRoot() { 136 137 boolean bOK = true; 138 XTreeNode root = oObj.getRoot(); 139 140 tRes.tested("getRoot()", bOK); 141 142 } 143 144 public void _addTreeDataModelListener(){ 145 146 boolean bOK = true; 147 148 log.println("add listener 1 to object..."); 149 oObj.addTreeDataModelListener(mListener1); 150 151 log.println("add listener 2 to object..."); 152 oObj.addTreeDataModelListener(mListener2); 153 154 mTreeStructureChanged1 = false; 155 mTreeStructureChanged2 = false; 156 157 mListenerEvent.fireEvent(); 158 159 bOK = mTreeStructureChanged1 & mTreeStructureChanged2; 160 161 tRes.tested("addTreeDataModelListener()", bOK); 162 } 163 164 public void _removeTreeDataModelListener(){ 165 166 boolean bOK = true; 167 168 log.println("remove listener 2 from object..."); 169 oObj.removeTreeDataModelListener(mListener2); 170 171 mTreeStructureChanged1 = false; 172 mTreeStructureChanged2 = false; 173 174 mListenerEvent.fireEvent(); 175 176 bOK = mTreeStructureChanged1 & ! mTreeStructureChanged2; 177 178 tRes.tested("removeTreeDataModelListener()", bOK); 179 180 } 181 } 182 183 184