예제 #1
0
        public Plugins()
        {
            PluginList = new PluginListViewModel(PluginRegistryService.Instance);

            // commands
            MagnifyImageCommand      = new RelayCommand(Magnify);
            CloseImagePreviewCommand = new ArglessRelayCommand(ClearMagnify);

            InitializeComponent();
            KeyBindings = CreateKeyBindings();
            PluginList.Refresh();
        }
예제 #2
0
        public RegistryPluginViewModel(PluginRegistryEntry entry, IPluginListProxy pluginList)
        {
            this.entry      = entry;
            this.pluginList = pluginList;

            DownloadCommand = new ArglessRelayCommand(
                () => CanInstall && IsVersionOk, DownloadPlugin
                );
            DeleteCommand = new ArglessRelayCommand(
                () => CanDelete, Delete
                );
            DownloadImage();
        }
예제 #3
0
        public SearchableViewModel(object Data)
        {
            this.Data = Data;

            OnEnter   = new ArglessRelayCommand(onEnter);
            OnDownKey = new ArglessRelayCommand(onDownKey);
            OnUpKey   = new ArglessRelayCommand(onUpKey);
            OnEscape  = new ArglessRelayCommand(() => { ShowPopup = false; });
            OnClear   = new ArglessRelayCommand(() => {
                IsEnabled = true;
                ClearSelection();
            });
            OnListSelected = new ArglessRelayCommand(DisplaySelection);
            OnLoaded       = new ArglessRelayCommand(onLoaded);
        }
예제 #4
0
        public RegistryPluginViewModel(PluginRegistryEntry entry, IPluginListProxy pluginList, ReadmeService readmeService, HttpClient http)
        {
            this.entry         = entry;
            this.pluginList    = pluginList;
            this.readmeService = readmeService;
            this.http          = http;

            DownloadCommand = new ArglessRelayCommand(
                () => CanInstall && IsVersionOk, DownloadPlugin
                );
            DeleteCommand = new ArglessRelayCommand(
                () => CanDelete, Delete
                );
            DownloadImage();
            LastUpdateLong  = PluginViewModelHelper.FormatLongDate(entry.ReleaseDate);
            LastUpdateShort = PluginViewModelHelper.FormatShortDate(entry.ReleaseDate);
            Actions         = new ObservableCollection <PluginActionViewModel>(GetActions());
        }
예제 #5
0
        public LoadedPluginViewModel(PluginEntry plugin, IPluginListProxy pluginList)
        {
            this.plugin     = plugin;
            this.pluginList = pluginList;

            ToggleCommand = new RelayCommand(
                _ => CanToggle,
                val => IsEnabled = (bool)val
                );
            DeleteCommand = new ArglessRelayCommand(
                () => CanDelete, Delete
                );
            RestoreCommand = new ArglessRelayCommand(
                () => CanRestore, Restore
                );
            pluginList.RegistryPluginsLoaded += OnRegistryPluginsLoaded;
            GetImage();
        }
예제 #6
0
        public LoadedPluginViewModel(PluginEntry plugin, IPluginListProxy pluginList)
        {
            this.plugin     = plugin;
            this.pluginList = pluginList;

            ToggleCommand = new RelayCommand(
                _ => CanToggle,
                val => IsEnabled = (bool)val
                );
            DeleteCommand = new ArglessRelayCommand(
                () => CanDelete, Delete
                );
            RestoreCommand = new ArglessRelayCommand(
                () => CanRestore, Restore
                );
            pluginList.RegistryPluginsLoaded += OnRegistryPluginsLoaded;
            GetImage();
            Actions         = new ObservableCollection <PluginActionViewModel>(GetActions());
            LastUpdateLong  = PluginViewModelHelper.FormatLongDate(plugin.PluginInformation.ReleaseDate);
            LastUpdateShort = PluginViewModelHelper.FormatShortDate(plugin.PluginInformation.ReleaseDate);
        }
예제 #7
0
        public static PluginActionViewModel ParseLink(string linkString)
        {
            var         name = "";
            var         link = "";
            ImageSource img  = null;

            var parts = linkString.Split('|');

            switch (parts.Length)
            {
            // icon|name|link
            case 3:
                name = GetLinkName(parts[0]);
                img  = (Application.Current.FindResource(parts[1]) as ImageSource)
                       ?? Application.Current.FindResource("ICON_LINK") as ImageSource;
                link = parts[2];
                break;

            // name|link
            case 2:
                name = parts[0];
                link = parts[1];
                img  = GetImageForAction(link) ?? Application.Current.FindResource("ICON_LINK") as ImageSource;
                break;

            // link
            default:
                name = GStrings.GetLocalizationByXPath("/Console/String[@ID='MESSAGE_PLUGIN_HOMEPAGE']");
                link = parts[0];
                img  = GetImageForAction(link) ?? Application.Current.FindResource("ICON_LINK") as ImageSource;
                break;
            }

            var command = new ArglessRelayCommand(() => Process.Start(link));

            return(new PluginActionViewModel(name, img, command));
        }
예제 #8
0
 public FileSelect()
 {
     ClearCommand = new ArglessRelayCommand(Clear);
     InitializeComponent();
 }
예제 #9
0
 public PluginCard()
 {
     InitializeComponent();
     ToggleModeCommand = new ArglessRelayCommand(ToggleMode);
 }
예제 #10
0
 public SearchBar()
 {
     ToggleSearchCommand = new RelayCommand(_ => true, ToggleSearch);
     CancelCommand       = new ArglessRelayCommand(() => true, Cancel);
     InitializeComponent();
 }