Critical:
=========

- Think about JavaGD devices. (User wants to plot in R Console etc.)
- Does Deducer interfere JavaGD? (When is .onLoad executed?)  
- Variable handling on command line gMCP!

High priority:
==============

- Check LaTeX export with variables and epsilon polynoms.
- Flag 1+epsilon>1 in line sum
- round adjusted p-Values up
- standard examples
- Think about "-Xrs" - see paragraph below.
- somehow p-value labels where disabled (but we were not in testing modus).
- Labels like 1/3+1/2*e also in decimal format: 0.3333+0.5*e
- Variable node weights
- When not using JLaTeXMath graphs with variables are not shown and saved(?) correctly
- Compare improvedFallbackGraphII with literature
- useC produces "Final graph after 1 steps:" - simple count the number of rejected hypotheses
- allow "(1-\gamma)/2" as edge weight (I guess it's fine, but only wrong formated by JLateXMath)

Medium priority:
================

- readRDS/saveRDS instead of load/save?
- If Error Report sending fails, give user the option to send the log files as zip file
- Does Indefinite ProgressPanel slow the calculation significantly down ?!?
- Improve visualization of CI (estimates should be a named vector - 0 estimates are often a strange choice - patch plotCII?)
- graphAnalysis: Graph can be optimal despite the fact that some nodes are not accessible from others
- Warn user when sum of edge weights is bigger than 1
- Check mutator methods for errors (alpha > 1, edge weights > 1)
- Update graph2latex to the much better algorithm already implemented in Java.
- Guide for usage under MacOS
- Test the option for rounding how many digits we want to see.
(search for DecimalFormat and replace it with getDecFormat())
- Ask for saving graph when quitting
- LookNFeel is not kept between sessions (also first call of options result in strange LookNFeel message)
- Edge labels should be fixed and placed by user or free and adjust to moving nodes
- Improve speed when loading graphs
- Check for / think about conflicts: "JAVAGD_CLASS_NAME"="org/mutoss/gui/JavaGD"
- Look-up-table for "as.character(fractions(x))" on Java side
- cacheSweave for Florians Rnw?
- placeNodes drops nodes to the top left if rows*columns is smaller than the number of nodes.

Additional features / low priority:
===================================

- What exactly are the consequences, if we set "Encoding: UTF-8" in the description file?
  - Are there other possibilities to pretty-print the \epsilon, etc.? (Most likely not worth the work.)
- Do we really need PolynomF and gtools and xtable as dependencies?
- Don't create global variable like .tmpGraph etc.
- Report generation in GUI (and respect the option whether to show rejected null hypothesis)
- PNG export cuts edges in rare cases. (But already improved!)
- Speed-up -> Matrices & perhaps ?ReferenceClasses ?
- Can we add a RUnit Test for Java importing Random Graphs and then exporting the same graph?
- TikZ styles for rejected / rejectable nodes
- further tests
- Look at http://xmlgraphics.apache.org/fop/
- After interruption of a calculation a new calculation gave:
  "unprotect(): only 0 protected items"
  Should be fixed now - but if we have time to spare, we could look further into this.
- Use of InfoNode Docking Windows? http://www.infonode.net/index.html?idw
  Would increase size by 717 kByte.
- Whishlist dialog.
- RMySQL as suggest?

@Apple - is this a problem?

r-patched-macosx-ix86:
checking R code for possible problems ... NOTE
2010-10-02 03:00:01.838 R[97724:613] Apple AWT Java VM was loaded on first thread -- can't start AWT. 

-> reference to JGR or Deducer.

@graph-package:

How do I create a graphNEL object, where there is a node that has no out-going edges?
I thought the following will do it:

hnodes <- c("H1","H2")
edges <- vector("list", length=2)
edges[[1]] <- list(edges=c("H2"), weights=c(1.0))
edges[[2]] <- list(edges=character(0), weights=numeric(0))
# or "edges[[2]] <- list()" which gives the same result.
names(edges)<-hnodes
g <- new("graphNEL", nodes=hnodes, edgeL=edges, "directed")

But the problem is, that g@edgeData@data[[1]]$weight is now a numeric with attribute "names".
This makes problems, for example it confuses edgeWeights: 

edgeWeights(g)
$H1
H2.H1
        1 

$H2
numeric(0)

In my understanding this should be "H2" instead of "H2.H1" like it would be when H2 has any outgoing edges.

rJava: We had the following problem:

> library(rJava)
> .jinit()
> replicate(1000000,rnorm(1))
^C
Java requested System.exit(130), closing R.

We solved it by calling .jinit(parameters="-Xrs")

Does this have side effects?

From http://download.oracle.com/javase/1.3/docs/tooldocs/solaris/java.html :

-Xrs
    Reduces use of operating-system signals by the Java virtual machine (JVM). This option is available beginning with J2SE 1.3.1.
    In J2SE 1.3.0, the Shutdown Hooks facility was added to allow orderly shutdown of a Java application. The intent was to allow user cleanup code (such as closing database connections) to run at shutdown, even if the JVM terminates abruptly.
    Sun's JVM catches signals to implement shutdown hooks for abnormal JVM termination. The JVM uses SIGHUP, SIGINT, and SIGTERM to initiate the running of shutdown hooks.
    The JVM uses a similar mechanism to implement the pre-1.2 feature of dumping thread stacks for debugging purposes. Sun's JVM uses SIGQUIT to perform thread dumps.
    Applications embedding the JVM frequently need to trap signals like SIGINT or SIGTERM, which can lead to interference with the JVM's own signal handlers. To address this issue, the -Xrs command-line option has been added beginning in J2SE 1.3.1. When -Xrs is used on Sun's JVM, the signal masks for SIGINT, SIGTERM, SIGHUP, and SIGQUIT are not changed by the JVM, and signal handlers for these signals are not installed.
    There are two consequences of specifying -Xrs:
        * SIGQUIT thread dumps are not available.
        * User code is responsible for causing shutdown hooks to run, for example by calling System.exit() when the JVM is to be terminated. 

As always:
==========
- more references, since some people will actually look at this package.
- More details in manual pages.

Sometimes install.packages fails on Windows machines (one session - second attempt works):

install.packages("gMCP")
--- Please select a CRAN mirror for use in this session ---
also installing the dependencies ‘mvtnorm’, ‘rJava’, ‘PolynomF’, ‘multcomp’, ‘graph’, ‘gtools’

trying URL 'http://ftp5.gwdg.de/pub/misc/cran/bin/windows/contrib/2.13/mvtnorm_0.9-96.zip'
Content type 'application/zip' length 555152 bytes (542 Kb)
opened URL
downloaded 542 Kb

[...]

trying URL 'http://ftp5.gwdg.de/pub/misc/cran/bin/windows/contrib/2.13/gMCP_0.6-1.zip'
Content type 'application/zip' length 4668375 bytes (4.5 Mb)
opened URL
downloaded 4.5 Mb

package 'mvtnorm' successfully unpacked and MD5 sums checked
package 'PolynomF' successfully unpacked and MD5 sums checked
package 'multcomp' successfully unpacked and MD5 sums checked
package 'graph' successfully unpacked and MD5 sums checked
package 'gtools' successfully unpacked and MD5 sums checked
package 'gMCP' successfully unpacked and MD5 sums checked
Warning: unable to move temporary installation 'C:\Program Files\R\R-2.13.0\library\file4a063a\gMCP' to 'C:\Program Files\R\R-2.13.0\library\gMCP'

The downloaded packages are in
        C:\Documents and Settings\Student\Local Settings\Temp\RtmpBJn6oK\downloaded_packages
        
> library(gMCP)
Error in library(gMCP) : there is no package called 'gMCP'
> install.packages("gMCP")
trying URL 'http://ftp5.gwdg.de/pub/misc/cran/bin/windows/contrib/2.13/gMCP_0.6-1.zip'
Content type 'application/zip' length 4668375 bytes (4.5 Mb)
opened URL
downloaded 4.5 Mb

package 'gMCP' successfully unpacked and MD5 sums checked

The downloaded packages are in
        C:\Documents and Settings\Student\Local Settings\Temp\RtmpBJn6oK\downloaded_packages
> library(gMCP)
Loading required package: rJava
Loading required package: MASS
Loading required package: PolynomF
Loading required package: multcomp
Loading required package: mvtnorm
Loading required package: survival
Loading required package: splines
Loading required package: graph
Loading required package: gtools
> 
