|
|
@ -3,6 +3,12 @@ package com.fr.design.gui.itree.filetree; |
|
|
|
import com.fr.base.FRContext; |
|
|
|
import com.fr.base.FRContext; |
|
|
|
import com.fr.design.ExtraDesignClassManager; |
|
|
|
import com.fr.design.ExtraDesignClassManager; |
|
|
|
import com.fr.design.mainframe.App; |
|
|
|
import com.fr.design.mainframe.App; |
|
|
|
|
|
|
|
import com.fr.general.GeneralContext; |
|
|
|
|
|
|
|
import com.fr.plugin.context.PluginContext; |
|
|
|
|
|
|
|
import com.fr.plugin.injectable.PluginModule; |
|
|
|
|
|
|
|
import com.fr.plugin.manage.PluginFilter; |
|
|
|
|
|
|
|
import com.fr.plugin.observer.PluginEvent; |
|
|
|
|
|
|
|
import com.fr.plugin.observer.PluginEventListener; |
|
|
|
|
|
|
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.Arrays; |
|
|
|
import java.util.Arrays; |
|
|
@ -14,15 +20,36 @@ import java.util.Set; |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public class FileNodeConstants { |
|
|
|
public class FileNodeConstants { |
|
|
|
|
|
|
|
|
|
|
|
private FileNodeConstants(){} |
|
|
|
private static List<String> supportFileType = new ArrayList<String>(Arrays.asList(FRContext.getFileNodes().getSupportedTypes())); |
|
|
|
|
|
|
|
|
|
|
|
public static String[] getSupportFileTypes(){ |
|
|
|
static { |
|
|
|
List<String> supportFileType = new ArrayList<>(Arrays.asList(FRContext.getFileNodes().getSupportedTypes())); |
|
|
|
GeneralContext.listenPluginRunningChanged(new PluginEventListener() { |
|
|
|
//通过插件扩展的
|
|
|
|
@Override |
|
|
|
Set<App> apps = ExtraDesignClassManager.getInstance().getArray(App.MARK_STRING); |
|
|
|
public void on(PluginEvent pluginEvent) { |
|
|
|
for(App app: apps){ |
|
|
|
supportFileType = new ArrayList<String>(Arrays.asList(FRContext.getFileNodes().getSupportedTypes())); |
|
|
|
supportFileType.addAll(Arrays.asList(app.defaultExtensions())); |
|
|
|
//通过插件扩展的
|
|
|
|
|
|
|
|
Set<App> apps = ExtraDesignClassManager.getInstance().getArray(App.MARK_STRING); |
|
|
|
|
|
|
|
for (App app : apps) { |
|
|
|
|
|
|
|
addAppExtensions(app.defaultExtensions()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}, new PluginFilter() { |
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public boolean accept(PluginContext pluginContext) { |
|
|
|
|
|
|
|
return pluginContext.contain(PluginModule.ExtraDesign); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static void addAppExtensions(String[] extensions) { |
|
|
|
|
|
|
|
for (int i = 0, size = extensions.length; i < size; i++) { |
|
|
|
|
|
|
|
if (!supportFileType.contains(extensions[i])) { |
|
|
|
|
|
|
|
supportFileType.add(extensions[i]); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static String[] getSupportFileTypes() { |
|
|
|
return supportFileType.toArray(new String[0]); |
|
|
|
return supportFileType.toArray(new String[0]); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|