FileAssociationsDev 

HOME INDEX SEARCH GO  

 <<O>>  Difference Topic FileAssociationsDev (r1.8 - 15 Feb 2003 - BarryKaplan)
Added:
>
>

Thanks for the merge. Not to worry about class/api changes.

-- BarryKaplan - 15 Feb 2003


 <<O>>  Difference Topic FileAssociationsDev (r1.7 - 14 Feb 2003 - AlexeyEfimov)
Changed:
<
<

%META:FILEATTACHMENT{name="fas-interface.png" attr="h" comment="File Association Interface" date="1044153229" path="D:\Development\projects\plugins\FileAssociations\fas-interface.png" size="18081" user="AlexeyEfimov" version="1.1"}% %META:FILEATTACHMENT{name="fas-howitwork.png" attr="h" comment="How It Work v1.1" date="1044153505" path="D:\Development\projects\plugins\FileAssociations\fas-howitwork.png" size="49704" user="AlexeyEfimov" version="1.1"}%

>
>

%META:FILEATTACHMENT{name="fas-interface.png" attr="h" comment="File Association Interface" date="1045258090" path="D:\Development\projects\plugins\FileAssociations\fas-interface.png" size="20450" user="AlexeyEfimov" version="1.2"}% %META:FILEATTACHMENT{name="fas-howitwork.png" attr="h" comment="How It Work v1.1" date="1045258235" path="D:\Development\projects\plugins\FileAssociations\fas-howitwork.png" size="66573" user="AlexeyEfimov" version="1.2"}%


 <<O>>  Difference Topic FileAssociationsDev (r1.6 - 12 Feb 2003 - AlexeyEfimov)
Deleted:
<
<

-- AlexeyEfimov - 10 Jan 2003

Changed:
<
<

-- BarryKaplan - 12 Feb 2003

>
>

-- AlexeyEfimov - 20 Jan 2003

Deleted:
<
<

-- BarryKaplan - 12 Feb 2003

Deleted:
<
<

-- BarryKaplan - 12 Feb 2003

Added:
>
>

-- BarryKaplan - 12 Feb 2003

Barry, first, let me thank you for improvements. It's realy needed feature, i guess. I merge it into my plugin, but i this than DataContext must be used instead of FileInfo class. In next version of plugin will be your feature, i promisse smile Thank you in any case!

-- AlexeyEfimov - 12 Feb 2003


 <<O>>  Difference Topic FileAssociationsDev (r1.5 - 12 Feb 2003 - BarryKaplan)
Changed:
<
<

-- AlexeyEfimov - 21 Jan 2003

>
>

-- BarryKaplan - 12 Feb 2003

Changed:
<
<

-- AlexeyEfimov - 02 Feb 2003

>
>

I have attached a zip file with modified source that supports specifying an optional linenumber per file. The format for the file is filename:linenumber. Where the :linenumber is optional. I would have provided a patch, but could not find a cvs repository (is there one?).

Also, I may have unintentionally changed the formatting on some files. (Too bad idea does not support any kind of shared code style.) I tried to reformat back to the orignal style, but may have missed just a bit.

Let me know if you have any issue with merging these changes into the standard release.

-- BarryKaplan - 12 Feb 2003

Whoops. The zip I uploaded has a problem. It is using ":" as the seperator between filename and linenumber. Of course that won't work so well on windows. I changed to ";" and that works much better -- for windows. If this plugin runs on linux, then ";" won't work there. I'm open to whatever seperator works.

We could also make the command line more complex (ie, file=xxx,line=xxx file=yyy,line=yyy). But a seperator character can be found that certainly is the least change to the code.

-- BarryKaplan - 12 Feb 2003

One more improvement to ProjectFileServerListener:

  public void actionPerformed(FileEvent e) {
    ...
    if (editor != null) {
      CaretModel caretModel = editor.getCaretModel();
      caretModel.moveToLogicalPosition(new LogicalPosition(e.getLineNumber(), 0));
      editor.getScrollingModel().scrollToCaret(ScrollType.MAKE_VISIBLE);
      bringWindow();
    }
  }
Added:
>
>

Added:
>
>

%META:FILEATTACHMENT{name="fileassociations-linenumbers.zip" attr="" comment="Support for specifying an optional line number" date="1045011369" path="C:\idea-fileassociations\fileassociations-linenumbers.zip" size="17531" user="BarryKaplan" version="1.1"}%


 <<O>>  Difference Topic FileAssociationsDev (r1.4 - 02 Feb 2003 - AlexeyEfimov)
Changed:
<
<

  • This diagram show how RMI file server realization work
RMIFileAssociations.png
>
>

The interface organisation of plugin

This diagram show base interface level of plugin
fas-interface.png

  • FileServerListener must listen for incomming FileEvent and perform loading files into IntelliJ instance per each project. This realized by ProjectFileServerListener.
  • FileEvent holds information for transfered File from outside.
  • FileServer - the main class for serving files between outside and IntelliJ. Now there are simple realization - SocketFileServer (see section "How it work"). The RMIFileServer is dead, becose too slow, but you can see class diagram for it here.
  • FileServerInfo hold the user unformation about this server such as "Command Line" or "Description". There are abstract realization of this interface - AbstractPropertiesFileServerInfo. This realization allow use properties files for inforation classes.
  • FileServerConnector make connection to file server and transfer files from out side to server.

How it work

File server have a set of listeners (FileServerListener). Than server get file from outside, then it notify all his listeners. Each listener know how show (open) transfered file in editor window, and do it. Than user perform command line invocation of loader class, then loader call to FileServerConnector and pass file as argument to it throught special FileManager.

In whole loading process pass folow steps:

  • Invoke JVM and pass list of file paths.
  • Connect to active file server and send file ot it.
  • On server side accept files and send this file list to each listener.
  • On listener side accet each file and load it into current IntelliJ project (project with listener associated).

You can see class diagram for whole plugin package here.

Added:
>
>

-- AlexeyEfimov - 02 Feb 2003

Added:
>
>

%META:FILEATTACHMENT{name="fas-interface.png" attr="h" comment="File Association Interface" date="1044153229" path="D:\Development\projects\plugins\FileAssociations\fas-interface.png" size="18081" user="AlexeyEfimov" version="1.1"}% %META:FILEATTACHMENT{name="fas-howitwork.png" attr="h" comment="How It Work v1.1" date="1044153505" path="D:\Development\projects\plugins\FileAssociations\fas-howitwork.png" size="49704" user="AlexeyEfimov" version="1.1"}%


 <<O>>  Difference Topic FileAssociationsDev (r1.3 - 20 Jan 2003 - AlexeyEfimov)
Added:
>
>

It's realy good idea. And it crossplatform idea smile . I use RMI becose i think that it's a simplest sample of file server, but Socket server is more simple. I'll try create this one file server in next version. Thanks Eugene!

-- AlexeyEfimov - 21 Jan 2003


 <<O>>  Difference Topic FileAssociationsDev (r1.2 - 19 Jan 2003 - EugeneBelyaev)
Added:
>
>

Why not use a simple Socket listener instead of the whole RMI server?

-- EugeneBelyaev - 20 Jan 2003


 <<O>>  Difference Topic FileAssociationsDev (r1.1 - 09 Jan 2003 - AlexeyEfimov)
Added:
>
>

%META:TOPICINFO{author="AlexeyEfimov" date="1042155660" format="1.0" version="1.1"}% %META:TOPICPARENT{name="FileAssociations"}%

FileAssociations plugin development

  • This diagram show how RMI file server realization work
RMIFileAssociations.png

Discussion

-- AlexeyEfimov - 10 Jan 2003

%META:FORM{name="WebForm"}% %META:FIELD{name="TopicClassification" title="TopicClassification" value="IntelliJPluginDevelopment"}% %META:FIELD{name="TopicShortDescription" title="TopicShortDescription" value="Development topic for FileAssociations plugin."}% %META:FIELD{name="TestedOnOS" title="TestedOnOS" value=""}% %META:FIELD{name="ShouldRunOnOS" title="ShouldRunOnOS" value=""}% %META:FILEATTACHMENT{name="RMIFileAssociations.png" attr="h" comment="RMI file server realization class diagram" date="1042155515" path="D:\Development\projects\plugins\FileAssociations\RMIFileAssociations.png" size="26189" user="AlexeyEfimov" version="1.1"}%


View | Diffs | r1.8 | > | r1.7 | > | r1.6 | More

e d i t a t t a c h r e f - b y d i f f s
Ideas,requests,problems regarding this site? Send feedback.
Copyright @ 2000-2003 by the contribution authors. All material on this collaboration tool is the property of the contributing authors.

Revision r1.1 - 09 Jan 2003 - 23:41 GMT - AlexeyEfimov
Revision r1.8 - 15 Feb 2003 - 02:52 GMT - BarryKaplan
Copyright © 2001 by the contributing authors. All material on this collaboration tool is the property of the contributing authors.
Ideas, requests, problems regarding this site? Send feedback.