1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/tasklist/arch/arch-tasklist-api.xml Fri Feb 28 08:55:27 2003 +0000
1.3 @@ -0,0 +1,176 @@
1.4 +<?xml version="1.0" encoding="UTF-8"?>
1.5 +<!DOCTYPE api-answers PUBLIC "-//NetBeans//DTD Arch Answers//EN" "../../nbbuild/antsrc/org/netbeans/nbbuild/Arch.dtd" [
1.6 + <!ENTITY api-questions SYSTEM "../../nbbuild/antsrc/org/netbeans/nbbuild/Arch-api-questions.xml">
1.7 +]>
1.8 +
1.9 +<api-answers
1.10 + version="1.0" date="2003/02/27"
1.11 + question-version="1.11"
1.12 + module="tasklist/api"
1.13 + author="tor@netbeans.org"
1.14 +>
1.15 +
1.16 + &api-questions;
1.17 +
1.18 +<answer id="arch-what">
1.19 + The TaskList API module provides an API to register suggestions in the tasklist suggestions view.
1.20 +</answer>
1.21 +
1.22 +<answer id="dep-nb">
1.23 + <api name="FileSystems" type="import" category="official"
1.24 + url="http://www.netbeans.org/download/dev/javadoc/OpenAPIs/org/openide/filesystems/doc-files/api.html"/>
1.25 +</answer>
1.26 +
1.27 +<answer id="dep-non-nb">
1.28 + None.
1.29 +</answer>
1.30 +
1.31 +<answer id="dep-platform">
1.32 + None.
1.33 +</answer>
1.34 +
1.35 +<answer id="dep-jre">
1.36 + 1.2.2
1.37 +</answer>
1.38 +
1.39 +<answer id="dep-jrejdk">
1.40 + JRE.
1.41 +</answer>
1.42 +
1.43 + <answer id="deploy-jar">
1.44 + Only one .jar (<code>tasklist-api.jar</code>) file is deployed.
1.45 + </answer>
1.46 +
1.47 + <answer id="deploy-nbm">
1.48 + Yes.
1.49 + </answer>
1.50 +
1.51 + <answer id="deploy-shared">
1.52 + Shared or user.
1.53 + </answer>
1.54 +
1.55 + <answer id="deploy-packages">
1.56 + No.
1.57 + </answer>
1.58 +
1.59 + <answer id="compat-i18n">
1.60 + Yes.
1.61 + </answer>
1.62 +
1.63 + <answer id="compat-standards">
1.64 + None.
1.65 + </answer>
1.66 +
1.67 + <answer id="compat-version">
1.68 + Yes.
1.69 + </answer>
1.70 +
1.71 + <answer id="resources-file">
1.72 + Not used.
1.73 + </answer>
1.74 +
1.75 + <answer id="resources-mask">
1.76 + None.
1.77 + </answer>
1.78 +
1.79 + <answer id="resources-layer">
1.80 + None.
1.81 + </answer>
1.82 +
1.83 + <answer id="resources-read">
1.84 + None.
1.85 + </answer>
1.86 +
1.87 + <answer id="lookup-lookup">
1.88 + Yes, it looks up SuggestionManager implementations (which
1.89 + implement an interface defined by this module) to provide
1.90 + it to clients (via SuggestionManager.getDefault()).
1.91 + It does not communicate with these instances - it simply
1.92 + provides them to clients.
1.93 + </answer>
1.94 +
1.95 + <answer id="lookup-register">
1.96 + None.
1.97 + </answer>
1.98 +
1.99 + <answer id="lookup-remove">
1.100 + None.
1.101 + </answer>
1.102 +
1.103 + <answer id="exec-property">
1.104 + None.
1.105 + </answer>
1.106 +
1.107 + <answer id="exec-component">
1.108 + No.
1.109 + </answer>
1.110 +
1.111 + <answer id="exec-classloader">
1.112 + No.
1.113 + </answer>
1.114 +
1.115 + <answer id="exec-reflection">
1.116 + No.
1.117 + </answer>
1.118 +
1.119 + <answer id="exec-privateaccess">
1.120 + No.
1.121 + </answer>
1.122 +
1.123 + <answer id="exec-process">
1.124 + No.
1.125 + </answer>
1.126 +
1.127 + <answer id="exec-introspection">
1.128 + No.
1.129 + </answer>
1.130 +
1.131 +
1.132 + <answer id="format-types">
1.133 + None defined.
1.134 + </answer>
1.135 +
1.136 + <answer id="format-dnd">
1.137 + None.
1.138 + </answer>
1.139 +
1.140 + <answer id="format-clipboard">
1.141 + None.
1.142 + </answer>
1.143 +
1.144 + <answer id="perf-startup">
1.145 + No.
1.146 + </answer>
1.147 +
1.148 + <answer id="perf-exit">
1.149 + No.
1.150 + </answer>
1.151 +
1.152 + <answer id="perf-scale">
1.153 + N/A.
1.154 + </answer>
1.155 +
1.156 + <answer id="perf-limit">
1.157 + N/A.
1.158 + </answer>
1.159 +
1.160 + <answer id="perf-mem">
1.161 + N/A.
1.162 + </answer>
1.163 +
1.164 + <answer id="perf-wakeup">
1.165 + No.
1.166 + </answer>
1.167 +
1.168 + <answer id="perf-progress">
1.169 + N/A
1.170 + </answer>
1.171 +
1.172 + <answer id="perf-huge_dialogs">
1.173 + No.
1.174 + </answer>
1.175 +
1.176 + <answer id="perf-menus">
1.177 + No.
1.178 + </answer>
1.179 +</api-answers>
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2.2 +++ b/tasklist/arch/arch-tasklist-core.xml Fri Feb 28 08:55:27 2003 +0000
2.3 @@ -0,0 +1,694 @@
2.4 +<?xml version="1.0" encoding="UTF-8"?>
2.5 +<!DOCTYPE api-answers PUBLIC "-//NetBeans//DTD Arch Answers//EN" "../../nbbuild/antsrc/org/netbeans/nbbuild/Arch.dtd" [
2.6 + <!ENTITY api-questions SYSTEM "../../nbbuild/antsrc/org/netbeans/nbbuild/Arch-api-questions.xml">
2.7 +]>
2.8 +
2.9 +<api-answers
2.10 + version="1.0" date="2003/02/27"
2.11 + question-version="1.11"
2.12 + module="tasklist/core"
2.13 + author="tor@netbeans.org"
2.14 +>
2.15 +
2.16 + &api-questions;
2.17 +
2.18 +
2.19 +<!-- Question: arch-what
2.20 +
2.21 + <question id="arch-what">
2.22 + What is this project good for?
2.23 + <hint>
2.24 + Please provide here few lines describing the the project,
2.25 + what problem it should solve, provide links to documentation,
2.26 + specifications, etc.
2.27 + </hint>
2.28 + </question>
2.29 +-->
2.30 +<answer id="arch-what">
2.31 +This module provides basic support for the other tasklist modules which do real work. In particular, it provides basic window support; subtask support; clipboard handling; HTML export; Searching and Filtering; etc.
2.32 +</answer>
2.33 +
2.34 +
2.35 +<!-- Question: compat-i18n
2.36 +
2.37 + <question id="compat-i18n">
2.38 + Is your module correctly internationalized?
2.39 + <hint>
2.40 + Correct internationalization means that it obeys instuctions
2.41 + at <a href="http://www.netbeans.org/devhome/docs/i18n/index.html">
2.42 + NetBeans I18N pages</a>.
2.43 + </hint>
2.44 + </question>
2.45 +-->
2.46 +<answer id="compat-i18n">
2.47 +Yes.
2.48 +</answer>
2.49 +
2.50 +
2.51 +
2.52 +<!-- Question: compat-standards
2.53 +
2.54 + <question id="compat-standards">
2.55 + Does the module implements or defines any standards? Is the
2.56 + implementation exact or it deviates somehow?
2.57 + </question>
2.58 +-->
2.59 +<answer id="compat-standards">
2.60 +No.
2.61 +</answer>
2.62 +
2.63 +
2.64 +
2.65 +<!-- Question: compat-version
2.66 +
2.67 + <question id="compat-version">
2.68 + Does your module properly coexists with earlier and future
2.69 + versions? Can you correctly read settings? Will future
2.70 + versions be able to read settings?
2.71 +
2.72 + <hint>
2.73 + Very helpful for reading settings is to store version number
2.74 + there, so future versions can decide whether how to read/convert
2.75 + the settings and older versions can ignore the new ones.
2.76 + </hint>
2.77 + </question>
2.78 +-->
2.79 +<answer id="compat-version">
2.80 +The only persistence this modules gets involved with is basic state
2.81 +persistence of tasklist windows; in particular, column widths,
2.82 +column visibility selection, sorting column, and sorting order.
2.83 +It stores a version time stamp so it will be able to handle older
2.84 +versions; it might be able to handle future versions (depends on
2.85 +what those future versions are).
2.86 +</answer>
2.87 +
2.88 +
2.89 +
2.90 +<!-- Question: dep-jre
2.91 +
2.92 + <question id="dep-jre">
2.93 + Which version of JRE you need (1.2, 1.3, 1.4, etc.)?
2.94 + <hint>
2.95 + It is expected that if your module runs on 1.x that it will run
2.96 + on 1.x+1 if no, state that please. Also describe here cases where
2.97 + you run different code on different versions of JRE and why.
2.98 + </hint>
2.99 + </question>
2.100 +-->
2.101 +<answer id="dep-jre">
2.102 +JRE 1.3 or higher. It does use some JDK 1.4 features when available,
2.103 +but these are obtained via reflection.
2.104 +</answer>
2.105 +
2.106 +
2.107 +
2.108 +<!-- Question: dep-jrejdk
2.109 +
2.110 + <question id="dep-jrejdk">
2.111 + Do you require JDK or is JRE enough?
2.112 + </question>
2.113 +-->
2.114 +<answer id="dep-jrejdk">
2.115 +JRE.
2.116 +</answer>
2.117 +
2.118 +
2.119 +
2.120 +<!-- Question: dep-nb
2.121 +
2.122 + <question id="dep-nb">
2.123 + What other NetBeans projects this one depends on?
2.124 + <hint>
2.125 + If you want, describe such projects as imported API using
2.126 + the <code><api name="identification" type="import or export" category="stable" url="where is the description" /></code>
2.127 + </hint>
2.128 + </question>
2.129 +-->
2.130 +<answer id="dep-nb">
2.131 +It depends on
2.132 +<ul>
2.133 +<li>
2.134 + <api
2.135 + name="OpenAPIs"
2.136 + type="import"
2.137 + category="stable"
2.138 + url="http://www.netbeans.org/download/dev/javadoc/OpenAPIs/"
2.139 + />
2.140 + NetBeans OpenAPIs
2.141 +</li>
2.142 +<li>
2.143 + <api
2.144 + name="TaskListAPIs"
2.145 + type="import"
2.146 + category="stable"
2.147 + url="http://www.netbeans.org/download/dev/javadoc/TaskListAPI/index.html"
2.148 + />
2.149 + Task List APIs
2.150 +</li>
2.151 +</ul>
2.152 +</answer>
2.153 +
2.154 +
2.155 +<!-- Question: dep-non-nb
2.156 +
2.157 + <question id="dep-non-nb">
2.158 + What other non-NetBeans projects this one depends on?
2.159 +
2.160 + <hint>
2.161 + Some non-NetBeans projects are packaged as NetBeans modules
2.162 + (see <a href="http://libs.netbeans.org">libraries</a>) and
2.163 + it is prefered to use this approach when more modules may
2.164 + depend on such third-party library.
2.165 + </hint>
2.166 + </question>
2.167 +-->
2.168 +<answer id="dep-non-nb">
2.169 +None.
2.170 +</answer>
2.171 +
2.172 +
2.173 +
2.174 +<!-- Question: dep-platform
2.175 +
2.176 + <question id="dep-platform">
2.177 + On which platforms your module run? Any? Does it run in the same
2.178 + way?
2.179 + <hint>
2.180 + If your module is using JNI or deals with special differences of
2.181 + OSes like filesystems, etc. please describe here what they are.
2.182 + </hint>
2.183 + </question>
2.184 +-->
2.185 +<answer id="dep-platform">
2.186 +Runs identically on all J2SE platforms
2.187 +</answer>
2.188 +
2.189 +
2.190 +
2.191 +<!-- Question: deploy-jar
2.192 +
2.193 + <question id="deploy-jar">
2.194 + Do you deploy just module JAR file(s) or some other files?
2.195 + <hint>
2.196 + If your module consist just from one module JAR file, just confirm that.
2.197 + If it uses more than one JAR, describe where there are located, how
2.198 + they refer to each other.
2.199 + If it consist of module JAR(s) and other files, please describe
2.200 + what is their purpose, why other files are necessary. Please
2.201 + make sure that installation/deinstallation leaves the system
2.202 + in state as it was before installation.
2.203 + </hint>
2.204 + </question>
2.205 +-->
2.206 +<answer id="deploy-jar">
2.207 +In addition to the module jar (<code>tasklist-core.jar</code>) there
2.208 +is also the help file: <code>docs/tasklist-manual.zip</code>.
2.209 +</answer>
2.210 +
2.211 +
2.212 +
2.213 +<!-- Question: deploy-nbm
2.214 +
2.215 + <question id="deploy-nbm">
2.216 + Can you deploy NBM via AutoUpdate center?
2.217 + <hint>
2.218 + If not why?
2.219 + </hint>
2.220 + </question>
2.221 +-->
2.222 +<answer id="deploy-nbm">
2.223 +Yes.
2.224 +</answer>
2.225 +
2.226 +
2.227 +
2.228 +<!-- Question: deploy-packages
2.229 +
2.230 + <question id="deploy-packages">
2.231 + Are packages of your module made inaccessible by not declaring them
2.232 + public?
2.233 +
2.234 + <hint>
2.235 + NetBeans module system allows restriction of access rights to
2.236 + public classes of your module from other modules. This prevents
2.237 + unwanted dependencies of others on your code and should be used
2.238 + whenever possible (<a href="http://www.netbeans.org/download/apis/org/openide/doc-files/upgrade.html#3.4-public-packages">
2.239 + public packages
2.240 + </a>).
2.241 + </hint>
2.242 + </question>
2.243 +-->
2.244 +<answer id="deploy-packages">
2.245 +No.
2.246 +</answer>
2.247 +
2.248 +
2.249 +
2.250 +<!-- Question: deploy-shared
2.251 +
2.252 + <question id="deploy-shared">
2.253 + Do you need to be installed in shared location or only in user directory?
2.254 + <hint>
2.255 + Installation location shall not matter, if it does explain why.
2.256 + </hint>
2.257 + </question>
2.258 +-->
2.259 +<answer id="deploy-shared">
2.260 +Either way is possible.
2.261 +</answer>
2.262 +
2.263 +
2.264 +
2.265 +<!-- Question: exec-classloader
2.266 +
2.267 + <question id="exec-classloader">
2.268 + Does your code uses own classloader?
2.269 + <hint>
2.270 + A bit unusual. Please explain why and what for.
2.271 + </hint>
2.272 + </question>
2.273 +-->
2.274 +<answer id="exec-classloader">
2.275 +No.
2.276 +</answer>
2.277 +
2.278 +
2.279 +<!-- <question id="exec-process">
2.280 + Do you execute an external process from your module? How do you ensure
2.281 + that the result is the same on different platforms? Do you parse output?
2.282 + Do you depend on result code?
2.283 + <hint>
2.284 + If you feed an input, parse the output please declare that as an API.
2.285 + </hint>
2.286 + </question>
2.287 +-->
2.288 +
2.289 +<answer id="exec-process">
2.290 +No.
2.291 +</answer>
2.292 +
2.293 +<!-- <question id="exec-introspection">
2.294 + Does your module use any kind of runtime type information (<code>instanceof</code>,
2.295 + work with <code>java.lang.Class</code>, etc.)?
2.296 + <hint>
2.297 + Check for cases when you have an object of type A and you also
2.298 + expect it to (possibly) be of type B and do some special action. That
2.299 + should be documented. The same applies on operations in meta-level
2.300 + (Class.isInstance(...), Class.isAssignableFrom(...), etc.).
2.301 + </hint>
2.302 + </question>
2.303 +-->
2.304 +<answer id="exec-introspection">
2.305 +Perhaps.
2.306 +</answer>
2.307 +
2.308 +
2.309 +<!-- Question: exec-component
2.310 +
2.311 + <question id="exec-component">
2.312 + Is execution of your code influenced by (string) property
2.313 + of any of your components?
2.314 +
2.315 + <hint>
2.316 + Often <code>JComponent.getClientProperty</code>, <code>Action.getValue</code>
2.317 + or <code>PropertyDescriptor.getValue</code>, etc. are used to influence
2.318 + a behaviour of some code. This of course forms an interface that should
2.319 + be documented. Also if one depends on some interface that an object
2.320 + implements (<code>component instanceof Runnable</code>) that forms an
2.321 + API as well.
2.322 + </hint>
2.323 + </question>
2.324 +-->
2.325 +<answer id="exec-component">
2.326 +No.
2.327 +</answer>
2.328 +
2.329 +
2.330 +
2.331 +<!-- Question: exec-privateaccess
2.332 +
2.333 + <question id="exec-privateaccess">
2.334 + Are you aware of any other part of the system calling some of
2.335 + your methods by reflection?
2.336 + <hint>
2.337 + If so, describe the "contract" as an API. Likely private or friend one, but
2.338 + still API and consider rewrite of it.
2.339 + </hint>
2.340 + </question>
2.341 +-->
2.342 +<answer id="exec-privateaccess">
2.343 +No.
2.344 +</answer>
2.345 +
2.346 +
2.347 +
2.348 +<!-- Question: exec-property
2.349 +
2.350 + <question id="exec-property">
2.351 + Is execution of your code influenced by any environment of
2.352 + system (<code>System.getProperty</code>) property?
2.353 +
2.354 + <hint>
2.355 + If there is a property that can change the behaviour of your
2.356 + code, somebody will likely use it. You should describe what it does
2.357 + and the stability category of this API. You may use
2.358 + <PRE>
2.359 + <property name="id" category="private" >
2.360 + description of the property, where it is used, what it influence, etc.
2.361 + </property>
2.362 + </PRE>
2.363 + </hint>
2.364 + </question>
2.365 +-->
2.366 +<answer id="exec-property">
2.367 +No.
2.368 +</answer>
2.369 +
2.370 +
2.371 +
2.372 +<!-- Question: exec-reflection
2.373 +
2.374 + <question id="exec-reflection">
2.375 + Does your code uses java.lang.reflect to execute some other code?
2.376 + <hint>
2.377 + This usually indicates a missing or unsufficient API in the other
2.378 + part of the system. If the other side is not aware of your dependency
2.379 + this contract can be easily broken.
2.380 + </hint>
2.381 + </question>
2.382 +-->
2.383 +<answer id="exec-reflection">
2.384 +Yes. It accesses some JDK 1.4 APIs via reflection
2.385 +(javax.imageio and java.beans.XMLEncoder/XMLDecoder).
2.386 +</answer>
2.387 +
2.388 +
2.389 +
2.390 +<!-- Question: format-clipboard
2.391 +
2.392 + <question id="format-clipboard">
2.393 + Which protocols your code reads/inserts when communicating with
2.394 + clipboard?
2.395 + </question>
2.396 +-->
2.397 +<answer id="format-clipboard">
2.398 +This is TBD. We have Task<->String converters, but to do more.
2.399 +</answer>
2.400 +
2.401 +
2.402 +
2.403 +<!-- Question: format-dnd
2.404 +
2.405 + <question id="format-dnd">
2.406 + Which protocols your code understands during drag-n-drop?
2.407 + </question>
2.408 +-->
2.409 +<answer id="format-dnd">
2.410 +None.
2.411 +</answer>
2.412 +
2.413 +
2.414 +
2.415 +<!-- Question: format-types
2.416 +
2.417 + <question id="format-types">
2.418 + Which file formats your code reads or writes on disk?
2.419 + </question>
2.420 +-->
2.421 +<answer id="format-types">
2.422 +It writes files through the OpenAPIs, specifically through the FileSystem API
2.423 +and the Settings API.
2.424 +It also uses the XMLDecoder/XMLEncoder to read/write bean-xml data structures.
2.425 +</answer>
2.426 +
2.427 +
2.428 +
2.429 +<!-- Question: lookup-lookup
2.430 +
2.431 + <question id="lookup-lookup">
2.432 + Does your module uses <code>org.openide.util.Lookup</code>
2.433 + to find any components to communicate to? Which ones?
2.434 +
2.435 + <hint>
2.436 + Please describe the interfaces you are searching for, where
2.437 + are defined, whether you are searching for just one or more of them,
2.438 + if the order is important, etc. Also clasify the stability of such
2.439 + API contract.
2.440 + </hint>
2.441 + </question>
2.442 +-->
2.443 +<answer id="lookup-lookup">
2.444 +The module is looking for the following implementations:
2.445 +<ul>
2.446 + <li><code>org.netbeans.modules.tasklist.core.TaskViewListener</code> (several, order does not matter)</li>
2.447 + <li><code>org.openide.util.actions.SystemAction</code> (several, order matters)</li>
2.448 + <li><code>java.lang.ClassLoader</code> (just one)</li>
2.449 + <li><code>org.openide.filesystems.Repository</code> (just one)</li>
2.450 +</ul>
2.451 +The interesting one above is the TaskViewListener. This interface lets the separate editor module be notified of interesting events in the task view, such as view going visible/invisible, as well as item selection.
2.452 +</answer>
2.453 +
2.454 +
2.455 +
2.456 +<!-- Question: lookup-register
2.457 +
2.458 + <question id="lookup-register">
2.459 + Do you register anything into the lookup for other to find?
2.460 + <hint>
2.461 + Do you register using layer file or using <code>META-INF/services</code>?
2.462 + Who is supposed to find your component?
2.463 + </hint>
2.464 + </question>
2.465 +-->
2.466 +<answer id="lookup-register">
2.467 +No.
2.468 +</answer>
2.469 +
2.470 +
2.471 +
2.472 +<!-- Question: lookup-remove
2.473 +
2.474 + <question id="lookup-remove">
2.475 + Do you remove entries of other modules from lookup?
2.476 + <hint>
2.477 + Why? Of course, that is possible, but it can be dangerous. Is the module
2.478 + your are masking resource from aware of what you are doing?
2.479 + </hint>
2.480 + </question>
2.481 +-->
2.482 +<answer id="lookup-remove">
2.483 +No.
2.484 +</answer>
2.485 +
2.486 +
2.487 +
2.488 +<!-- Question: perf-exit
2.489 +
2.490 + <question id="perf-exit">
2.491 + Does your module executes anything on exit?
2.492 + </question>
2.493 +-->
2.494 +<answer id="perf-exit">
2.495 +No.
2.496 +</answer>
2.497 +
2.498 +
2.499 +
2.500 +<!-- Question: perf-huge_dialogs
2.501 +
2.502 + <question id="perf-huge_dialogs">
2.503 + Does your module contain any dialogs or wizards with huge
2.504 + amount of GUI controls like combo boxes, lists, trees, text
2.505 + areas?
2.506 + </question>
2.507 +-->
2.508 +<answer id="perf-huge_dialogs">
2.509 +Yes. The filter dialog is fairly complex.
2.510 +</answer>
2.511 +
2.512 +
2.513 +
2.514 +<!-- Question: perf-limit
2.515 +
2.516 + <question id="perf-limit">
2.517 + Are there any limits in number/size of elements your code
2.518 + can handle?
2.519 + </question>
2.520 +-->
2.521 +<answer id="perf-limit">
2.522 +No, although sorting and node creation will cause a bottleneck
2.523 +for a huge number of tasks in the task list.
2.524 +</answer>
2.525 +
2.526 +
2.527 +
2.528 +<!-- Question: perf-mem
2.529 +
2.530 + <question id="perf-mem">
2.531 + What is the amount of memory your component occupies? Estimate
2.532 + with a relaction to the number of windows, etc.
2.533 + </question>
2.534 +-->
2.535 +<answer id="perf-mem">
2.536 +The amount of data is proportional to the number of tasks in the tasklists.
2.537 +</answer>
2.538 +
2.539 +
2.540 +
2.541 +<!-- Question: perf-menus
2.542 +
2.543 + <question id="perf-menus">
2.544 + Does your module use dynamically changing context menus or
2.545 + context sensitive actions with complicated logic for enable/disable?
2.546 + </question>
2.547 +-->
2.548 +<answer id="perf-menus">
2.549 +Yes. The contents of context menus may depend on the selected nodes.
2.550 +The enable/disable logic is not complicated.
2.551 +</answer>
2.552 +
2.553 +
2.554 +
2.555 +<!-- Question: perf-progress
2.556 +
2.557 + <question id="perf-progress">
2.558 + Does your module executes some long running task?
2.559 + <hint>Typically they are tasks like connecting over
2.560 + network, computing huge amount of data, compilation.
2.561 + Such communication should be done asynchronously (for example
2.562 + using <code>RequestProcessor</code>), definitively it should
2.563 + not block AWT thread.
2.564 + </hint>
2.565 + </question>
2.566 +-->
2.567 +<answer id="perf-progress">
2.568 +No.
2.569 +</answer>
2.570 +
2.571 +
2.572 +
2.573 +<!-- Question: perf-scale
2.574 +
2.575 + <question id="perf-scale">
2.576 + Which external criteria influence the performance of your
2.577 + program (size of file in editor, number of files in menu,
2.578 + in source directory, etc.) and how well your code scales?
2.579 + Please include some estimates.
2.580 + </question>
2.581 +-->
2.582 +<answer id="perf-scale">
2.583 +Mainly number of tasks in the view.
2.584 +</answer>
2.585 +
2.586 +
2.587 +
2.588 +<!-- Question: perf-startup
2.589 +
2.590 + <question id="perf-startup">
2.591 + Does your module executes anything on startup?
2.592 + </question>
2.593 +-->
2.594 +<answer id="perf-startup">
2.595 +No.
2.596 +</answer>
2.597 +
2.598 +
2.599 +
2.600 +<!-- Question: perf-wakeup
2.601 +
2.602 + <question id="perf-wakeup">
2.603 + Is any piece of your code waking up periodically?
2.604 + </question>
2.605 +-->
2.606 +<answer id="perf-wakeup">
2.607 +No.
2.608 +</answer>
2.609 +
2.610 +
2.611 +
2.612 +<!-- Question: resources-file
2.613 +
2.614 + <question id="resources-file">
2.615 + Does your module use <code>java.io.File</code> directly?
2.616 +
2.617 + <hint>
2.618 + NetBeans provide a logical wrapper over plain files called
2.619 + <code>org.openide.filesystems.FileObject</code> that
2.620 + provides uniform access to such resources and is the prefered
2.621 + way that should be used. But of course there can be situations when
2.622 + this is not suitable.
2.623 + </hint>
2.624 + </question>
2.625 +-->
2.626 +<answer id="resources-file">
2.627 +Yes. The code to import tasklist files, and export to HTML, is
2.628 +using java.io.File directly. The code to read/write tasklists is
2.629 +also using File. I had some code earlier using FileObject but I
2.630 +had lots of problems with it so I modified it to use File. The
2.631 +code is localized and it shouldn't be too hard to make it use
2.632 +FileObject again, especially when "/" will be mounted by default
2.633 +(NetBeans 4.0).
2.634 +</answer>
2.635 +
2.636 +
2.637 +
2.638 +<!-- Question: resources-layer
2.639 +
2.640 + <question id="resources-layer">
2.641 + Does your module provide own layer? Does it create some files or
2.642 + folders on it? What it is trying to communicate by that and with which
2.643 + component?
2.644 +
2.645 + <hint>
2.646 + NetBeans allows automatic and declarative installation of resources
2.647 + by module layers. Module register files into appropriate places
2.648 + and other components use that information to perform their task
2.649 + (build menu, toolbar, window layout, list of templates, set of
2.650 + options, etc.).
2.651 + </hint>
2.652 + </question>
2.653 +-->
2.654 +<answer id="resources-layer">
2.655 +Yes. It registers a toolbar, a java help set, and a transfer handler.
2.656 +</answer>
2.657 +
2.658 +
2.659 +
2.660 +<!-- Question: resources-mask
2.661 +
2.662 + <question id="resources-mask">
2.663 + Does your module mask/hide/override any resource provided by another one in
2.664 + module layer?
2.665 +
2.666 + <hint>
2.667 + If you mask a file provided by another module, you probably depend
2.668 + on that and do not want the other module to (for example) change
2.669 + the file's name. That module shall thus make that file available as an API
2.670 + of some stability category.
2.671 + </hint>
2.672 + </question>
2.673 +-->
2.674 +<answer id="resources-mask">
2.675 +No.
2.676 +</answer>
2.677 +
2.678 +
2.679 +
2.680 +<!-- Question: resources-read
2.681 +
2.682 + <question id="resources-read">
2.683 + Does your module read any resources from layers? For what purpose?
2.684 +
2.685 + <hint>
2.686 + As this is some kind of intermodule dependency, it is a kind of API.
2.687 + Please describe it and clasify according to
2.688 + <a href="http://openide.netbeans.org/tutorial/api-design.html#categories">
2.689 + common stability categories</a>.
2.690 + </hint>
2.691 + </question>
2.692 +-->
2.693 +<answer id="resources-read">
2.694 +No.
2.695 +</answer>
2.696 +
2.697 +</api-answers>