public RadioButtonViewModel(string description, string preview, string group, TOption value, Option2 <TOption> option, AbstractOptionPreviewViewModel info, OptionStore optionStore) : base(description, preview, info, isChecked: optionStore.GetOption(option).Equals(value), group: group) { _value = value; _option = option; }
public CheckBoxOptionViewModel(IOption option, string description, string preview, AbstractOptionPreviewViewModel info, OptionStore optionStore) : this(option, description, preview, preview, info, optionStore) { }
protected abstract AbstractOptionPageControl CreateOptionPage(IServiceProvider serviceProvider, OptionStore optionStore);
public CheckBoxOptionViewModel(IOption option, string description, string truePreview, string falsePreview, AbstractOptionPreviewViewModel info, OptionStore optionStore) : base(option, description, truePreview, falsePreview, info) { SetProperty(ref _isChecked, (bool)optionStore.GetOption(new OptionKey(option, option.IsPerLanguage ? info.Language : null))); }
protected override AbstractOptionPageControl CreateOptionPage(IServiceProvider serviceProvider, OptionStore optionStore) { return(new InternalOptionsControl(nameof(InternalSolutionCrawlerOptions), optionStore)); }
protected override AbstractOptionPageControl CreateOptionPage(IServiceProvider serviceProvider, OptionStore optionStore) { return(new InternalOptionsControl(nameof(EditorComponentOnOffOptions), optionStore)); }
public InternalOptionsControl(string featureOptionName, OptionStore optionStore) : base(optionStore) { _featureOptionName = featureOptionName; // options var optionsPanel = new StackPanel(); this.AddOptions(optionsPanel); // scroll var viewer = new ScrollViewer() { VerticalScrollBarVisibility = ScrollBarVisibility.Auto, HorizontalScrollBarVisibility = ScrollBarVisibility.Auto }; viewer.Content = optionsPanel; // search var searchBox = new TextBox() { MinWidth = 200, HorizontalAlignment = HorizontalAlignment.Stretch }; var searchButton = new Button() { Content = "Search" }; searchButton.Click += (o, a) => { foreach (var item in optionsPanel.Children.OfType <CheckBox>()) { var title = item.Content as string; if (title == null) { continue; } // pattern not match if (title.IndexOf(searchBox.Text, StringComparison.OrdinalIgnoreCase) < 0) { // hide it item.Visibility = Visibility.Collapsed; } else { item.Visibility = Visibility.Visible; } } }; var clearButton = new Button() { Content = "Clear" }; clearButton.Click += (o, a) => optionsPanel.Children.OfType <CheckBox>().Do(c => c.Visibility = Visibility.Visible); var searchPanel = new StackPanel() { Orientation = Orientation.Horizontal, Margin = new Thickness(5), HorizontalAlignment = HorizontalAlignment.Stretch }; searchPanel.Children.Add(searchBox); searchPanel.Children.Add(searchButton); searchPanel.Children.Add(clearButton); // button var checkAllButton = new Button() { Content = "Check All" }; checkAllButton.Click += (o, a) => optionsPanel.Children.OfType <CheckBox>().Where(c => c.Visibility == Visibility.Visible).Do(c => c.IsChecked = true); var uncheckAllButton = new Button() { Content = "Uncheck All" }; uncheckAllButton.Click += (o, a) => optionsPanel.Children.OfType <CheckBox>().Where(c => c.Visibility == Visibility.Visible).Do(c => c.IsChecked = false); var selectionPanel = new StackPanel() { Orientation = Orientation.Horizontal, Margin = new Thickness(5), HorizontalAlignment = HorizontalAlignment.Stretch }; selectionPanel.Children.Add(checkAllButton); selectionPanel.Children.Add(uncheckAllButton); // main panel var mainPanel = new DockPanel() { HorizontalAlignment = HorizontalAlignment.Stretch }; mainPanel.Children.Add(searchPanel); mainPanel.Children.Add(selectionPanel); mainPanel.Children.Add(viewer); DockPanel.SetDock(searchPanel, Dock.Top); DockPanel.SetDock(selectionPanel, Dock.Bottom); this.Content = mainPanel; }
public void UpdatePreview(string text) { var service = VisualStudioMefHostServices.Create( _componentModel.GetService <ExportProvider>() ); var workspace = new PreviewWorkspace(service); var fileName = "project." + (Language == "C#" ? "csproj" : "vbproj"); var project = workspace.CurrentSolution.AddProject(fileName, "assembly.dll", Language); // use the mscorlib, system, and system.core that are loaded in the current process. string[] references = { "mscorlib", "System", "System.Core" }; var metadataService = workspace.Services.GetService <IMetadataService>(); var referenceAssemblies = Thread .GetDomain() .GetAssemblies() .Where( x => references.Contains(x.GetName(true).Name, StringComparer.OrdinalIgnoreCase) ) .Select( a => metadataService.GetReference( a.Location, MetadataReferenceProperties.Assembly ) ); project = project.WithMetadataReferences(referenceAssemblies); var document = project.AddDocument("document", SourceText.From(text, Encoding.UTF8)); var formatted = Formatter .FormatAsync(document, OptionStore.GetOptions()) .WaitAndGetResult(CancellationToken.None); var textBuffer = _textBufferFactoryService.CreateTextBuffer( formatted.GetTextSynchronously(CancellationToken.None).ToString(), _contentType ); var container = textBuffer.AsTextContainer(); var projection = _projectionBufferFactory.CreateProjectionBufferWithoutIndentation( _contentTypeRegistryService, _editorOptions.CreateOptions(), textBuffer.CurrentSnapshot, separator: "", exposedLineSpans: GetExposedLineSpans(textBuffer.CurrentSnapshot).ToArray() ); var textView = _textEditorFactoryService.CreateTextView( projection, _textEditorFactoryService.CreateTextViewRoleSet(PredefinedTextViewRoles.Interactive) ); this.TextViewHost = _textEditorFactoryService.CreateTextViewHost( textView, setFocus: false ); workspace.TryApplyChanges(document.Project.Solution); workspace.OpenDocument(document.Id, container); this.TextViewHost.Closed += (s, a) => { workspace.Dispose(); workspace = null; }; }