One thing I miss from the C++ world is support for windows file change
notification and perhaps some of the efficiency / functionality of
find file apis vs. how things are now done in Java. It should be
possible to get all available meta info about a file or other entity
using just _one_ api call (and crossing of the java / native
boundary), rather than having to make separate calls to determine
length, modification date, read-only status, etc.
I don't know if full exposure of file system functionality would be
worthwhile or not. (Any way to do it without being to specific to
O/S?) Windows supports multiple streams of data per file, though I
don't know how much it's used. Would this compare to the old mac
notion of data and resource forks? If so, perhaps a general exposure
of multiple streams per "file" would be nice.
Other ideas might be defrag stuff, good services/scheduling support.
Joel
"Robert Enyedi" <renyedi@xxxxxxxxx> wrote in message
news:d0onpi$jfu$1@xxxxxxxxxxxxxxxxxx
Hi,
Just like the founders of this project, I know that Java is lacking a
lot of desktop integration features. For a while I've been developing
an open-source file manager in Java and these are the main areas
where I have to use native bindings:
- partition information - there's no way of obtaining basic partition
information in Java: type, size, free space. The Eclipse Update
Manager codebase contains such code
(http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.update.core.win32/src/)
and I use something similar to it. It's not that hard, but it's still
native code and should be available as an API. For example, any
container/application server needs such an API for doing a safe deploy.
- file permissions/attributes - all you can do in Java is set a
file's read-only attribute. There's no way of resetting it. And you
can check if it's hidden, but no API for changes is provided. There
should be a specialized API for dealing with a unified file
permission model that covers mainly the permission models of win32
and Unix.
- shell context menu - while the first two areas are of general
interest, the handling of the system shell's context menu is somewhat
of limited use. I need it in my file manager
(http://sourceforge.net/project/screenshots.php?group_id=35271&ssid=8601)
and I also have some code already implemented (only for win32 and it
works just partially):
http://cvs.sourceforge.net/viewcvs.py/jcommander/plugins/org.jcommander.systemshell.win32/src/.
However, an API for the system shell and the contextual menu in
particular might be useful also for other kind of applications that
require tight desktop integration.
While trying to address these needs for my application, I directly
experienced the two obvious difficulties in developing native bindings:
- design of a unified and platform independent API - requires
knowledge of all the major platforms
- implementation of the APIs for each target platform - thorough
knowledge of the specific APIs is needed and this is the hardest part
What I've found out as missing in Java for desktop integration is
just a small part of what other requirements might be.
Do you have a plan about the areas of desktop integration that the
Eclipse Desktop project intends to address?
Regards,
Robert