1 20 21 package org.apache.directory.ldapstudio.browser.common.widgets.browser; 22 23 24 import java.util.Arrays ; 25 26 import org.apache.directory.ldapstudio.browser.core.model.IEntry; 27 28 29 36 public class BrowserEntryPage 37 { 38 39 private BrowserSorter sorter; 40 41 42 private int first; 43 44 45 private int last; 46 47 48 private IEntry entry; 49 50 51 private BrowserEntryPage parentEntryPage; 52 53 54 private BrowserEntryPage[] subpages; 55 56 57 66 public BrowserEntryPage( IEntry entry, int first, int last, BrowserEntryPage[] subpages, BrowserSorter sorter ) 67 { 68 this.entry = entry; 69 this.first = first; 70 this.last = last; 71 this.subpages = subpages; 72 this.sorter = sorter; 73 74 if ( subpages != null ) 75 { 76 for ( int i = 0; i < subpages.length; i++ ) 77 { 78 subpages[i].parentEntryPage = this; 79 } 80 } 81 } 82 83 84 90 public Object [] getChildren() 91 { 92 if ( subpages != null ) 93 { 94 return subpages; 95 } 96 else 97 { 98 IEntry[] children = entry.getChildren(); 100 101 sorter.sort( null, children ); 103 104 if ( children != null ) 106 { 107 IEntry[] childrenRange = new IEntry[last - first + 1]; 108 for ( int i = first; i <= last; i++ ) 109 { 110 childrenRange[i - first] = children[i]; 111 } 112 return childrenRange; 113 } 114 else 115 { 116 return null; 117 } 118 } 119 } 120 121 122 123 128 public int getFirst() 129 { 130 return first; 131 } 132 133 134 139 public int getLast() 140 { 141 return last; 142 } 143 144 145 150 public IEntry getEntry() 151 { 152 return entry; 153 } 154 155 156 164 public BrowserEntryPage getParentOf( IEntry entry ) 165 { 166 if ( subpages != null ) 167 { 168 BrowserEntryPage ep = null; 169 for ( int i = 0; i < subpages.length && ep == null; i++ ) 170 { 171 ep = subpages[i].getParentOf( entry ); 172 } 173 return ep; 174 } 175 else 176 { 177 IEntry[] sr = ( IEntry[] ) getChildren(); 178 if ( sr != null && Arrays.asList( sr ).contains( entry ) ) 179 { 180 return this; 181 } 182 else 183 { 184 return null; 185 } 186 } 187 } 188 189 190 195 public Object getParent() 196 { 197 return ( parentEntryPage != null ) ? ( Object ) parentEntryPage : ( Object ) entry; 198 } 199 200 201 204 public String toString() 205 { 206 return entry.toString() + "[" + first + "..." + last + "]" + hashCode(); 207 } 208 209 } 210 | Popular Tags |