DevFaqFileRecognitionJa

NetBeans はどのようにファイルを認識するのですか?

A lot of applications show some UI that displays folders of files; also a lot of NetBeans UI is created by showing virtual files in the configuration filesystem. Many pieces of NetBeans UI are really a view of some folder and its children from the configuration filesystem - the Runtime tab in the IDE and the old Options dialog (click the Advanced button in NetBeans 5.0 and up).

たくさんのアプリケーションで、ファイルを含むフォルダ群を表示するようなユーザインタフェースが使われています。また、NetBeans の様々なユーザインタフェースは、 コンフィグレーション・ファイルシステム にある仮想的なファイルを表示することによって作られています。 NetBeans のユーザインタフェースの大部分は、コンフィグレーション・ファイルシステムにあるフォルダ群とその子要素のビューそのものです。 例えば、IDE の実行時タブや、古いオプションダイアログ ( NetBeans 5.0 以降では、Advanced ボタンをクリックしてください ) がそれにあたります。

The basic mechanism is this: Some folder is shown in the UI; files of known types have their own icons, menu items and behavior.

基本的なメカニズムはこうです: ユーザインタフェースにはフォルダが表示され、そのタイプが分かっているファイルは自信のアイコンやメニューアイテムや振る舞いを持っている。

The way NetBeans detects files is this: The "files" being shown are FileObjects - wrappers around java.io.File, or in the case of configuration files, typically wrappers around data stored in some other way, such as inside XML files in modules. What you're actually seeing is Nodes, which are the things that provide actions, localized names, etc. to files or other things.

NetBeans がファイルを検知する方法はこうです: 表示されている "ファイル" は、java.io.File をラップした FileObject であるか、あるいは、コンフィグレーションファイルの場合は、他の何がしかの方法で保存されているデータをラップしたもの、例えばモジュールでは XML ファイルの中にあるようなものです。

In between Nodes and FileObjects are DataObjects. A DataObject is like a FileObject, except that it knows what kind of file is being shown, and there are usually different types of DataObject (provided by different modules which implement support for file types - for example, the Image module makes it possible to recognize and open .gif and .png files) for files with different extensions, XML files with different DTDs, etc.

NodeFileObject の間にあるものが DataObject です。 DataObject は FileObject に似ていますが、それ自身が ファイルのようなもの として表示されることを知っているという点が異なります。 また、異なる拡張子を持つファイルそれぞれについて、いくつかのタイプの DataObject があります。 (それは、ファイルタイプのサポートを実装する異なるモジュールによって提供されます。例えば、Image モジュールは .gif.png ファイルを認識し開くことが可能です。) 例えば、異なる DTD を利用する XML ファイルなどです。

Modules that recognize different file types install DataLoaders - factories for file-type-specific DataObjects.

異なるファイルタイプを認識するモジュールは、DataLoader をインストールします。これは、そのファイルタイプに特有の DataObject のファクトリです。

So what really happens is that, when a folder is expanded, the system asks each known DataLoader, "Do you know what this is?" The first one that says "Yes" gets to create the DataObject for the file (in reality the recognition process is a little more optimized than it sounds here, but it adds up to this description).

実際に何が起こるのかといえば、あるフォルダが展開されると、システムは自分が知っている DataLoader のそれぞれにこう聞きます。「これが何か知っているかい?」 この質問に最初に「知っている」と答えた DataLoader が、そのファイルのための DataObject を作ります。(実際には、認識プロセスはもう少し最適化されていますが、その説明で合っています。)

In order to actually display something for the each file, the system calls DataObject.getNodeDelegate() for each DataObject, and the Nodes are what you actually see in the UI.

それぞれのファイルについて実際に何かを表示するために、システムはそれぞれの DataObject に対して DataObject.getNodeDelegate() を呼び、Node こそが実際にあなたが UI の中で見るものになります。


Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo