public override void Execute(object parameter) { var context = parameter as IItemSelectionContext; if (context == null) { return; } var item = context.Items.First(); if (item == null) { return; } Site.RequestCompleted callback = delegate(string response) { var fileName = Path.Combine(Path.GetTempPath(), item.Name + @".rawlayout.xml"); fileName = IO.File.MakeUniqueFileName(fileName); IO.File.Save(fileName, response); AppHost.Files.OpenFile(fileName); File.Delete(fileName); }; item.ItemUri.Site.Execute("Layouts.GetRawLayout", callback, item.ItemUri.DatabaseName.ToString(), item.ItemUri.ItemId.ToString()); }
private void FindPlaceHolderSettingsItem([NotNull] Action <ItemHeader> action) { Debug.ArgumentNotNull(action, nameof(action)); var placeHolderName = PlaceHolderTreeViewItem.PlaceHolderName; var placeHolderPath = PlaceHolderTreeViewItem.GetPlaceHolderPath(); var device = PlaceHolderTreeViewItem.DeviceTreeViewItem.Device; Site.RequestCompleted completed = delegate(string response) { if (string.IsNullOrEmpty(response)) { CreatePlaceHolderSettings(placeHolderName, placeHolderPath, action); return; } var root = response.ToXElement(); if (root == null) { return; } var itemHeader = ItemHeader.Parse(device.DatabaseUri, root); action(itemHeader); }; device.DatabaseUri.Site.Execute("LayoutBuilders.GetPlaceHolderSettings", completed, device.DatabaseUri.DatabaseName.ToString(), placeHolderName, placeHolderPath); }
/// <summary> /// Initializes a new instance of the <see cref="GridDesignerMain" /> class. /// </summary> /// <param name="databaseUri">The database Uri.</param> /// <param name="currentLayoutTypeValue">The current layout type value.</param> /// <param name="numberOfCell">The number of cell.</param> /// <param name="cellAttributes">The cell attributes.</param> public GridDesignerMain([NotNull] DatabaseUri databaseUri, [CanBeNull] string currentLayoutTypeValue, int numberOfCell, [NotNull] string cellAttributes) { InitializeComponent(); this.InitializeDialog(); Site.RequestCompleted completed = delegate(string response) { LayoutType currentLayoutType = null; var layoutTypes = new List <LayoutType>(); var root = response.ToXElement(); if (root != null) { foreach (var element in root.Elements()) { var layoutType = GetLayoutTypeFromItem(element); if (layoutType != null) { layoutTypes.Add(layoutType); if (layoutType.Name.Equals(currentLayoutTypeValue)) { currentLayoutType = layoutType; } } } } InitializeGridDesigner(layoutTypes, currentLayoutType, numberOfCell, cellAttributes); }; databaseUri.Site.Execute("Layouts.GetGridDesignerLayouts", completed, databaseUri.DatabaseName.Name); }
private void TrackLayout() { Site.RequestCompleted completed = delegate(string response) { Device.LayoutPlaceHolders = response; RenderRenderings(); }; Device.PageModel.DatabaseUri.Site.Execute("Layouts.GetLayoutPlaceHolders", completed, Device.PageModel.DatabaseUri.DatabaseName.ToString(), Device.LayoutId); }
private void CreatePlaceHolderSettings([NotNull] string placeHolderName, [NotNull] string placeHolderPath, [NotNull] Action <ItemHeader> action) { Debug.ArgumentNotNull(placeHolderName, nameof(placeHolderName)); Debug.ArgumentNotNull(placeHolderPath, nameof(placeHolderPath)); Debug.ArgumentNotNull(action, nameof(action)); var device = PlaceHolderTreeViewItem.DeviceTreeViewItem.Device; var options = new TaskDialogOptions { Owner = this.GetAncestorOrSelf <Window>(), Title = "Place Holder Settings", CommonButtons = TaskDialogCommonButtons.None, MainInstruction = "The place holder settings item was not found.", MainIcon = VistaTaskDialogIcon.Information, CommandButtons = new[] { string.Format("Create place holder settings with name \"{0}\"", placeHolderName), string.Format("Create place holder settings with qualified name \"{0}\"", placeHolderPath) }, AllowDialogCancellation = true }; var r = TaskDialog.Show(options).CommandButtonResult; if (r == null) { return; } var path = r == 0 ? placeHolderName : placeHolderPath; Site.RequestCompleted completed = delegate(string response) { if (string.IsNullOrEmpty(response)) { AppHost.MessageBox("Could not create the Place Holder Settings item.", "Information", MessageBoxButton.OK, MessageBoxImage.Information); return; } var root = response.ToXElement(); if (root == null) { AppHost.MessageBox("Could not create the Place Holder Settings item.", "Information", MessageBoxButton.OK, MessageBoxImage.Information); return; } var itemHeader = ItemHeader.Parse(device.DatabaseUri, root); action(itemHeader); }; device.DatabaseUri.Site.Execute("Layouts.CreatePlaceHolderSettings", completed, device.DatabaseUri.DatabaseName.ToString(), path); }
private void ControlLoaded([NotNull] object sender, [NotNull] RoutedEventArgs e) { Debug.ArgumentNotNull(sender, nameof(sender)); Debug.ArgumentNotNull(e, nameof(e)); Loaded -= ControlLoaded; var item = SelectedItems.First(); var items = string.Join("|", SelectedItems.Select(i => i.ItemUri.ItemId.ToString())); Site.RequestCompleted completed = delegate(string response) { PreparingPanel.Visibility = Visibility.Collapsed; var root = response.ToXElement(); if (root == null) { NoMessagesPanel.Visibility = Visibility.Visible; NoMessagesText.Text = "The server returned an unexpected reply."; return; } OK.IsEnabled = true; var count = int.Parse(root.GetAttributeValue("count")); if (count == 1) { ConfirmText.Text = "Are you sure you want to delete this item?"; NoMessagesText.Text = "It is safe to delete this item."; } else { ConfirmText.Text = string.Format("Are you sure you want to delete these {0} items?", count); NoMessagesText.Text = string.Format("It is safe to delete these {0} items.", count); } if (!root.Elements().Any()) { NoMessagesPanel.Visibility = Visibility.Visible; return; } HasMessagesPanel.Visibility = Visibility.Visible; ParseMessages(root); RenderMessages(messages); }; item.ItemUri.Site.Execute("Items.DeleteItems", completed, item.ItemUri.DatabaseName.ToString(), items, true, false); }
private void DeleteItemsQuickly([NotNull] List <IItem> selectedItems) { Debug.ArgumentNotNull(selectedItems, nameof(selectedItems)); var singleText = Resources.Delete_Execute_Are_you_sure_you_want_to_delete___0___; var multipleText = Resources.Delete_Execute_Are_you_sure_you_want_to_delete_these__0__items_; var texts = selectedItems.OfType <ICanDeleteWithText>().FirstOrDefault(); if (texts != null) { singleText = texts.SingleText; multipleText = texts.SingleText; } if (selectedItems.Count() == 1) { var item = selectedItems.First() as ICanDelete; if (item == null) { return; } if (AppHost.MessageBox(string.Format(singleText, item.Text), Resources.Confirmation, MessageBoxButton.OKCancel, MessageBoxImage.Exclamation) != MessageBoxResult.OK) { return; } } else { if (AppHost.MessageBox(string.Format(multipleText, selectedItems.Count), Resources.Confirmation, MessageBoxButton.OKCancel, MessageBoxImage.Exclamation) != MessageBoxResult.OK) { return; } } Site.RequestCompleted completed = delegate { foreach (var item in selectedItems) { Notifications.RaiseItemDeleted(this, item.ItemUri); } }; var items = string.Join("|", selectedItems.Select(i => i.ItemUri.ItemId.ToString())); var selectedItem = selectedItems.First(); selectedItem.ItemUri.Site.Execute("Items.DeleteItems", completed, selectedItem.ItemUri.DatabaseName.ToString(), items, false, true); }
private void Opened([NotNull] object sender, [NotNull] RoutedEventArgs e) { Debug.ArgumentNotNull(sender, nameof(sender)); Debug.ArgumentNotNull(e, nameof(e)); var context = Context; if (context == null) { return; } var databaseUri = context.DatabaseUri; var menuItem = e.Source as MenuItem; if (menuItem == null) { return; } var item = menuItem.Items.OfType <MenuItem>().FirstOrDefault(i => i.Tag as string == @"loading"); if (item == null) { return; } var index = menuItem.Items.IndexOf(item); menuItem.Items.Insert(index + 1, new Separator()); Site.RequestCompleted completed = delegate(string response) { var root = response.ToXElement(); if (root == null) { return; } LoadLanguages(menuItem, root, databaseUri); }; databaseUri.Site.Execute("Languages.GetLanguages", completed, databaseUri.DatabaseName.ToString()); }
public override void Execute(object parameter) { var context = parameter as ContentTreeContext; if (context == null) { return; } var dialog = new OpenFileDialog { Title = "Import", CheckFileExists = true, DefaultExt = @".xml", Filter = @"Xml files|*.xml|All files|*.*" }; if (dialog.ShowDialog() != true) { return; } var selectedItem = context.SelectedItems.FirstOrDefault() as ItemTreeViewItem; if (selectedItem == null) { return; } var xml = File.ReadAllText(dialog.FileName); Site.RequestCompleted completed = delegate(string response) { if (string.IsNullOrEmpty(response)) { AppHost.MessageBox("Import succeeded.", "Information", MessageBoxButton.OK, MessageBoxImage.Information); } else { AppHost.MessageBox("Import succeeded with messages:\n\n" + response, "Information", MessageBoxButton.OK, MessageBoxImage.Information); } }; selectedItem.ItemUri.Site.Execute("Documentation.Import", completed, selectedItem.ItemUri.DatabaseName.ToString(), xml); }
private void LoadRenderingGallery([NotNull] LayoutDesigner layoutDesigner, [NotNull] InRibbonGallery gallery) { Debug.ArgumentNotNull(layoutDesigner, nameof(layoutDesigner)); Debug.ArgumentNotNull(gallery, nameof(gallery)); Site.RequestCompleted completed = delegate(string response) { var root = response.ToXElement(); if (root == null) { return; } var items = root.Elements().Select(element => ItemHeader.Parse(layoutDesigner.DatabaseUri, element)).Where(e => MatchesSpeakCoreVersion(e, layoutDesigner)).ToList(); var renderings = new List <RenderingButton>(); foreach (var item in items.OrderBy(i => i.ParentName).ThenBy(i => i.Name)) { var button = new RenderingButton { Label = item.Name, Icon = item.Icon, Tag = item, ToolTip = ToolTipBuilder.BuildToolTip(item) }; button.PreviewMouseUp += (sender, args) => { AddRenderingFromRibbon(layoutDesigner, sender, button); }; renderings.Add(button); } renderings = renderings.OrderBy(i => i.Label).ToList(); gallery.ItemsSource = renderings; }; layoutDesigner.DatabaseUri.Site.Execute("Layouts.GetRenderings", completed, layoutDesigner.DatabaseUri.DatabaseName.ToString()); }
private void OkClick([NotNull] object sender, [NotNull] RoutedEventArgs e) { Debug.ArgumentNotNull(sender, nameof(sender)); Debug.ArgumentNotNull(e, nameof(e)); var item = SelectedItems.First(); var items = string.Join("|", SelectedItems.Select(i => i.ItemUri.ItemId.ToString())); Site.RequestCompleted completed = delegate { foreach (var selectedItem in SelectedItems) { Notifications.RaiseItemDeleted(this, selectedItem.ItemUri); } this.Close(true); }; OK.IsEnabled = false; Cancel.IsEnabled = false; item.ItemUri.Site.Execute("Items.DeleteItems", completed, item.ItemUri.DatabaseName.ToString(), items, false, false); }
public override void Execute(object parameter) { var context = parameter as ContentTreeContext; if (context == null) { return; } var dialog = new SaveFileDialog { Title = "Export SPEAK Documentation", CheckPathExists = true, OverwritePrompt = true, Filter = @"Xml files|*.xml|All files|*.*" }; if (dialog.ShowDialog() != true) { return; } var selectedItem = context.SelectedItems.FirstOrDefault() as ItemTreeViewItem; if (selectedItem == null) { return; } Site.RequestCompleted completed = delegate(string response) { File.WriteAllText(dialog.FileName, response); AppHost.Files.OpenFile(dialog.FileName); }; selectedItem.ItemUri.Site.Execute("Documentation.Export", completed, selectedItem.ItemUri.DatabaseName.ToString(), selectedItem.ItemUri.ItemId.ToString()); }
public override void Execute(object parameter) { var context = parameter as LayoutDesignerContext; if (context == null) { return; } var renderingTreeViewItem = context.SelectedItems.FirstOrDefault() as RenderingItem; if (renderingTreeViewItem == null) { return; } var itemUri = context.LayoutDesigner.FieldUris.First().ItemVersionUri.ItemUri; var databaseUri = context.LayoutDesigner.DatabaseUri; string name; renderingTreeViewItem.ParameterDictionary.Parameters.TryGetValue("Id", out name); if (string.IsNullOrEmpty(name)) { name = renderingTreeViewItem.Name; } var location = renderingTreeViewItem.DataSourceLocation; if (string.IsNullOrEmpty(location)) { var dialog = new SelectItemDialog(); dialog.Initialize("Create Data Source", itemUri); if (AppHost.Shell.ShowDialog(dialog) != true) { return; } } var template = renderingTreeViewItem.DataSourceTemplate; Site.RequestCompleted completed = delegate(string response) { var parts = response.Split(','); if (parts.Length != 2) { AppHost.MessageBox("The item was not found.", Resources.Information, MessageBoxButton.OK, MessageBoxImage.Information); return; } var itemId = parts[0]; var parentItemId = parts[1]; Guid guid; if (!Guid.TryParse(itemId, out guid)) { AppHost.MessageBox("The item was not found.", Resources.Information, MessageBoxButton.OK, MessageBoxImage.Information); return; } renderingTreeViewItem.DataSource = itemId; var itemVersionUri = new ItemVersionUri(new ItemUri(databaseUri, new ItemId(guid)), LanguageManager.CurrentLanguage, Data.Version.Latest); Notifications.RaiseItemAdded(this, itemVersionUri, new ItemUri(databaseUri, new ItemId(new Guid(parentItemId)))); AppHost.OpenContentEditor(itemVersionUri); }; databaseUri.Site.Execute("LayoutBuilders.CreateDataSource", completed, databaseUri.DatabaseName.ToString(), itemUri.ItemId.ToString(), name, location, template); }