private UserControl GetDataRepositoryContentUserControl()
        {
            DataRepositoryContentUserControl userControl = new DataRepositoryContentUserControl();

            userControl.DataRepositoryItemMouseDoubleClick += UserControl_DataRepositoryItemMouseDoubleClick;

            string header1 = GisEditor.LanguageManager.GetStringResource("FolderDataRepositoryUserControlTypeText");
            DataRepositoryGridColumn column1 = new DataRepositoryGridColumn(header1, 70, di => di.Category);

            string header2 = GisEditor.LanguageManager.GetStringResource("CommonSizeText");
            DataRepositoryGridColumn column2 = new DataRepositoryGridColumn(header2, 100);

            column2.CellContentConvertHandler = di =>
            {
                FileDataRepositoryItem fileDataRepositoryItem = di as FileDataRepositoryItem;
                if (fileDataRepositoryItem != null)
                {
                    return(String.Format(CultureInfo.InvariantCulture, "{0:N0} KB"
                                         , (int)Math.Ceiling((double)fileDataRepositoryItem.FileInfo.Length / 1024d)));
                }
                else
                {
                    return(Binding.DoNothing);
                }
            };

            userControl.Columns.Add(column1);
            userControl.Columns.Add(column2);

            return(userControl);
        }
Ejemplo n.º 2
0
        private UserControl GetDataRepositoryContentUserControl()
        {
            DataRepositoryContentUserControl userControl = new DataRepositoryContentUserControl();

            string header1 = GisEditor.LanguageManager.GetStringResource("FolderDataRepositoryUserControlTypeText");
            DataRepositoryGridColumn column1 = new DataRepositoryGridColumn(header1, 70, di => di.Category);

            string header2 = "Url";
            DataRepositoryGridColumn column2 = new DataRepositoryGridColumn(header2, 100);

            column2.CellContentConvertHandler = di =>
            {
                WmsDataRepositoryItem wmsDataRepositoryItem = di as WmsDataRepositoryItem;
                if (wmsDataRepositoryItem != null)
                {
                    return(wmsDataRepositoryItem.Url);
                }
                else
                {
                    return(Binding.DoNothing);
                }
            };

            userControl.Columns.Add(column1);
            userControl.Columns.Add(column2);

            return(userControl);
        }
Ejemplo n.º 3
0
        private void ListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            DataRepositoryItem[] selectedItems = ChildrenList.SelectedItems.OfType <DataRepositoryItem>().ToArray();
            if (selectedItems.Length > 1)
            {
                DataRepositoryContentViewModel.Current.PlaceOnMapCommand = DataRepositoryHelper.GetPlaceMultipleFilesCommand(selectedItems);
            }
            else if (selectedItems.Length == 1)
            {
                DataRepositoryItem dataRepositoryItem = selectedItems[0];
                if (dataRepositoryItem != null && dataRepositoryItem.ContextMenu != null)
                {
                    DataRepositoryContentViewModel.Current.ContextMenuStackPanel = DataRepositoryContentUserControl.ConvertContextMenuToButton(dataRepositoryItem.ContextMenu);
                }

                if (dataRepositoryItem != null && dataRepositoryItem.IsLoadable)
                {
                    DataRepositoryContentViewModel.Current.PlaceOnMapCommand = ((MenuItem)selectedItems.First().ContextMenu.Items[0]).Command;
                }
                else
                {
                    DataRepositoryContentViewModel.Current.PlaceOnMapCommand = null;
                }
            }
        }
Ejemplo n.º 4
0
 public PostgreServerDataRepositoryPlugin()
     : base()
 {
     Name      = "Postgre Server";
     SmallIcon = new BitmapImage(new Uri("/GisEditorPluginCore;component/Images/apacheconf.png", UriKind.RelativeOrAbsolute));
     Content   = new DataRepositoryContentUserControl();
     Index     = DataRepositoryOrder.Postgre;
     InitContextMenu();
 }
        private void TreeView_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e)
        {
            DataRepositoryContentViewModel.Current.SearchResultVisibility = Visibility.Collapsed;
            if (e.NewValue != null && (selectedTreeViewItem = e.NewValue as DataRepositoryItem) != null)
            {
                FolderDataRepositoryItem folderItem = selectedTreeViewItem as FolderDataRepositoryItem;
                if (folderItem != null && !Directory.Exists(folderItem.FolderInfo.FullName))
                {
                    System.Windows.Forms.MessageBox.Show(string.Format(CultureInfo.InvariantCulture, alertMessage,
                                                                       folderItem.FolderInfo.FullName), "Warning", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning);
                    return;
                }

                DataRepositoryContentViewModel.SelectedDataRepositoryItem = selectedTreeViewItem;
                if (selectedTreeViewItem.ContextMenu != null)
                {
                    DataRepositoryContentViewModel.Current.ContextMenuStackPanel = DataRepositoryContentUserControl.ConvertContextMenuToButton(selectedTreeViewItem.ContextMenu);
                }
                else
                {
                    DataRepositoryContentViewModel.Current.ContextMenuStackPanel = null;
                }
                if (!selectedTreeViewItem.IsLeaf)
                {
                    var viewModelContainingContent = selectedTreeViewItem.GetRootDataRepositoryItem();
                    DataRepositoryContentViewModel.Current.CurrentPluginItemViewModel = viewModelContainingContent;
                    if (viewModelContainingContent.ContextMenu != null && viewModelContainingContent.ContextMenu.HasItems)
                    {
                        DataRepositoryContentViewModel.Current.AddDataCommand = ((MenuItem)viewModelContainingContent.ContextMenu.Items[0]).Command;
                    }
                    if (DataRepositoryContentViewModel.Current.CurrentPluginItemViewModel.Content != null)
                    {
                        if (!DataRepositoryContentViewModel.SelectedDataRepositoryItem.Id.Equals("Data Folders", System.StringComparison.InvariantCultureIgnoreCase))
                        {
                            var sourcePlugin = DataRepositoryContentViewModel.SelectedDataRepositoryItem.GetSourcePlugin();
                            if (sourcePlugin != null && sourcePlugin.CanRefreshDynamically)
                            {
                                DataRepositoryContentViewModel.SelectedDataRepositoryItem.Refresh();
                            }
                        }
                        DataRepositoryContentViewModel.Current.CurrentPluginItemViewModel.Content.DataContext = DataRepositoryContentViewModel.SelectedDataRepositoryItem;
                    }
                }
            }
        }
Ejemplo n.º 6
0
        private UserControl GetDataRepositoryContentUserControl()
        {
            DataRepositoryContentUserControl userControl = new DataRepositoryContentUserControl();

            string header1 = "Record Count";
            DataRepositoryGridColumn column1 = new DataRepositoryGridColumn(header1, 100, di =>
            {
                MsSqlTableDataRepositoryItem msSqlTableDataRepositoryItem = di as MsSqlTableDataRepositoryItem;
                if (msSqlTableDataRepositoryItem == null)
                {
                    return(string.Empty);
                }

                TextBlock textBlock = new TextBlock();
                if (recordCountCache.ContainsKey(msSqlTableDataRepositoryItem.Id))
                {
                    textBlock.Text = recordCountCache[msSqlTableDataRepositoryItem.Id];
                }
                else
                {
                    textBlock.Text = "Loading...";

                    Task task = Task.Factory.StartNew(() =>
                    {
                        string tempTableName = GetFullTableName(msSqlTableDataRepositoryItem);
                        string sqlStatement  = "SELECT COUNT(*) FROM " + tempTableName;

                        SqlCommand command       = null;
                        SqlDataReader dataReader = null;

                        try
                        {
                            command = GetSqlCommand(sqlStatement, msSqlTableDataRepositoryItem);

                            dataReader = command.ExecuteReader();

                            string text = "";
                            if (dataReader.Read())
                            {
                                text = Convert.ToInt32(dataReader[0], CultureInfo.InvariantCulture).ToString();
                                recordCountCache[msSqlTableDataRepositoryItem.Id] = text;
                            }
                            Application.Current.Dispatcher.BeginInvoke(() =>
                            {
                                textBlock.Text = text;
                            });
                        }
                        catch (Exception ex)
                        {
                            Application.Current.Dispatcher.BeginInvoke(() =>
                            {
                                textBlock.Text = "Timeout";
                            });
                        }
                        finally
                        {
                            if (dataReader != null)
                            {
                                dataReader.Dispose();
                            }
                            if (command != null)
                            {
                                command.Connection.Close();
                                command.Dispose();
                            }
                        }
                    });
                }

                return(textBlock);
            });

            userControl.Columns.Add(column1);
            return(userControl);
        }