JAL-4034 Allow request for non-modal JDialog, which puts the Runnable action into...
[jalview.git] / utils / install4j / auto_file_associations-i4j8.pl
index c418aad..31a4afa 100755 (executable)
@@ -23,7 +23,7 @@ my $mimetypes = {
   scorematrix => "application/x-jalview-scorematrix+text",
   pdb => "chemical/x-pdb",
   mmcif => "chemical/x-cif",
-  mmcif2 => "chemical/x-mcif",
+  mmcif2 => "chemical/x-mmcif",
   jalview => "application/x-jalview+xml+zip",
   jvl => "application/x-jalview-jvl+text",
   annotations => "application/x-jalview-annotations+text",
@@ -37,8 +37,9 @@ my $add_associations = {
   gff3 => {shortname=>"gff3",name=>"Generic Features Format v3",extensions=>["gff3"]},
   features => {shortname=>"features",name=>"Jalview Features",extensions=>["features","jvfeatures"]},
   annotations => {shortname=>"annotations",name=>"Jalview Annotations",extensions=>["annotations","jvannotations"]},
+  mmcif => {shortname=>"mmcif",name=>"CIF",extensions=>["cif"]},
   mmcif2 => {shortname=>"mmcif2",name=>"mmCIF",extensions=>["mcif","mmcif"]},
-  jvl => {shortname=>"jvl",name=>"Jalview Launch",extensions=>["jvl"],iconfile=>"Jalview-Launch"},
+  jvl => {shortname=>"jvl",name=>"Jalview Launch",extensions=>["jvl"],iconfile=>"jvl_file"},
   jnet => {shortname=>"jnet",name=>"JnetFile",extensions=>["concise","jnet"]},
   scorematrix => {shortname=>"scorematrix",name=>"Substitution Matrix",extensions=>["mat"]},
 };
@@ -120,25 +121,16 @@ close(IN);
 
 my %all_associations = (%$file_associations, %$add_associations);
 
-my $num = 0;
-my $i4jcount = 0;
 my @ordered = (@put_first, @non_primary);
 for my $key (sort keys %all_associations) {
   next if grep($_ eq $key, @ordered);
   push(@ordered, $key);
 }
-for my $key (@ordered) {
-  my $a = $all_associations{$key};
-  next if (ref($a) ne "HASH");
-
-  my $extensions = $a->{extensions};
-  my @extensions = @$extensions;
-
-  $num++
-}
+my $num = $#ordered + 1;
 
 warn("--\n");
 
+my $i4jcount = 0;
 for my $shortname (@ordered) {
   my $a = $all_associations{$shortname};
   next if (ref($a) ne "HASH");
@@ -162,6 +154,7 @@ for my $shortname (@ordered) {
   my $xshortname = xml_escape($shortname);
   my $xiconfile = xml_escape($iconfile);
   my $xrole = xml_escape($role);
+  my $xROLE = xml_escape(uc($role));
   my $xprimarystring = xml_escape($primarystring);
 
   my $macentry = $mactemplate;
@@ -189,12 +182,13 @@ for my $shortname (@ordered) {
   $i4jentry =~ s/\$\$MIMETYPE\$\$/$xmimetype/g;
   $i4jentry =~ s/\$\$ICONFILE\$\$/$xiconfile/g;
   $i4jentry =~ s/\$\$PRIMARY\$\$/$xprimarystring/g;
+  $i4jentry =~ s/\$\$MACASSOCIATIONROLE\$\$/$xROLE/g;
 
   my $ext = join(",",sort(@extensions));
   my $xdisplayext = xml_escape(join(", ", map(".$_",sort(@extensions))));
-  $i4jcount++;
   my $progresspercent = int(($i4jcount/$num)*100);
   $progresspercent = 100 if $progresspercent > 100;
+  $i4jcount++;
   my $xext = xml_escape($ext);
   my $addunixextension = "true";
 
@@ -217,29 +211,11 @@ for my $shortname (@ordered) {
 
 close(IA);
 print MA "</array>\n";
-# 
-# print MA "
-# <!-- BEGIN FROM PERL SCRIPT -->
-# <key>CFBundleURLTypes</key>
-# <array>
-# <dict>
-# <key>CFBundleURLName</key>
-# <string>org.jalview.jalview-desktop.url.jalview</string>
-# <key>CFBundleTypeRole</key>
-# <string>Editor</string>
-# <key>CFBundleURLSchemes</key>
-# <array>
-# <string>jalview</string>
-# </array>
-# </dict>
-# </array>
-# <!-- END FROM PERL SCRIPT -->
-# ";
 close(MA);
 
 sub xml_escape {
   my $x = shift;
   # stolen from Pod::Simple::XMLOutStream in base distro
-  $x =~ s/([^-\n\t !\#\$\%\(\)\*\+,\.\~\/\:\;=\?\@\[\\\]\^_\`\{\|\}abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789])/'&#'.(ord($1)).';'/eg;
+  $x =~ s/([^-\n\t !\#\$\%\(\)\*\+,\.\~\/\:\;=\?\@\[\\\]\^_\`\{\|\}a-zA-Z0-9])/'&#'.(ord($1)).';'/eg;
   return $x;
 }