/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package nu_javafx_sample; import nu_javafx_sample.loadexternal.ExternalPluginsManager; import java.io.File; import java.util.HashMap; import neembuu.release1.api.ui.MainComponent; import neembuu.release1.ui.mc.NonUIMainComponent; import neembuu.uploader.api.AppLocationProvider; import neembuu.uploader.versioning.ProgramVersionProvider; import neembuu.uploader.api.UserLanguageCodeProvider; import neembuu.uploader.api.accounts.AccountsProvider; import neembuu.uploader.api.queuemanager.StartNextUploadIfAnyCallback; import neembuu.uploader.interfaces.Account; import neembuu.uploader.interfaces.abstractimpl.AbstractUploader; import neembuu.uploader.translation.LanguageChangedCallback; import neembuu.uploader.translation.TranslationProvider; import neembuu.uploader.uploaders.common.CommonUploaderTasks; import neembuu.uploader.utils.NUProperties; import neembuu.uploader.versioning.FileNameNormalizer; import neembuu.uploader.versioning.User; import neembuu.uploader.versioning.UserProvider; /** * * @author Shashank */ public class InitializeStuff { static void intializeGlobalStuff(){ UserProvider userProvider = makeUserProvider(); AppLocationProvider alp = makeAppLocationProvider(); initializeAbstractUploader(userProvider); initializeApplication(alp); initCommonUploaderTasks(userProvider); ExternalPluginsManager.initialize(alp); } private static void initCommonUploaderTasks(UserProvider userProvider){ StartNextUploadIfAnyCallback snuiac = new StartNextUploadIfAnyCallback() { @Override public void startNextUploadIfAny() {} }; ProgramVersionProvider pvp = new ProgramVersionProvider() { @Override public String getVersionForProgam() { return "3.0 (demo)"; } @Override public float getVersion() { return 3f; } }; UserLanguageCodeProvider ulcp = new UserLanguageCodeProvider() { @Override public String getUserLanguageCode() { return "en"; } }; CommonUploaderTasks.init(snuiac, pvp, userProvider, ulcp); } public static AppLocationProvider makeAppLocationProvider(){ return new AppLocationProvider() { @Override public File getPath() { try{ File d = new File(InitializeStuff.class.getResource("/nu_javafx_sample/").toURI());; return new File(d,"../../../"); }catch(Exception a){ throw new RuntimeException(a); } } }; } private static void initializeApplication(AppLocationProvider alp){ LanguageChangedCallback lcc = new LanguageChangedCallback() { @Override public void updateGUI() { System.out.println("language changed :P"); } }; TranslationProvider.init(alp, lcc); } private static void initializeAbstractUploader(UserProvider userProvider){ MainComponent mainComponent = new NonUIMainComponent(); AccountsProvider accountsProvider = new AccountsProvider() { @Override public Account getAccount(String hostname) { return ExternalPluginsManager.getExternalPluginsCreator() .newAccount(hostname); } }; NUProperties nup = makeNUProperties(); AbstractUploader.init(userProvider, mainComponent, accountsProvider, nup); } private static NUProperties makeNUProperties(){ return new NUProperties() { private final HashMap<String,String> properties = new HashMap<String,String>(); @Override public String getProperty(String key) { return properties.get(key); } @Override public String getEncryptedProperty(String key) { return properties.get(key); } @Override public void setProperty(String key, String value) { properties.put(key, value); } @Override public void setEncryptedProperty(String key, String value) { properties.put(key, value); } }; } private static UserProvider makeUserProvider(){ return new UserProvider() { @Override public User getUserInstance() { final long uid = (long)(Math.random()*Long.MAX_VALUE); return new User() { @Override public long uid() {return uid; } @Override public String uidString() { return Long.toString(uid); } @Override public boolean canCustomizeNormalizing() { return true; } }; } @Override public FileNameNormalizer getFileNameNormalizer() { return new FileNameNormalizer() { @Override public String normalizeFileName(String fn, int fileNameLengthLimit) {return fn; } @Override public String normalizeFileName(String fn) { return fn; } }; } }; } }