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