public AssociatesControl(TraitCategoryType category, ViewModelBase owner)
        {
            InitializeComponent();
            this.Category = category;

            var itemsList = new List <String>(new String[] { "Description", "Taxon", "Material" });

            cmbType.ItemsSource = itemsList;

            if (category != TraitCategoryType.Taxon)
            {
                contentGrid.RowDefinitions[2].Height = new GridLength(0);
                lblRelAToB.Content = "Specimen is a:";
            }
            else
            {
                txtPoliticalRegion.BindUser(User, LookupType.Region);
                lblRelAToB.Content = "Taxon is a:";
            }

            cmbType.SelectionChanged += new SelectionChangedEventHandler(cmbType_SelectionChanged);
            DataContextChanged       += new DependencyPropertyChangedEventHandler(AssociatesControl_DataContextChanged);

            txtSource.BindUser(User, "tblAssociate", "vchrSource");
            txtReference.BindUser(User, LookupType.Reference);
        }
 public NotesControl(User user, TraitCategoryType category, ViewModelBase owner) : base(user, "Notes:" + category.ToString() + ":" + owner.ObjectID.Value)
 {
     InitializeComponent();
     TraitCategory = category;
     this.Owner    = owner;
     btnColor.SelectedColorChanged += new RoutedPropertyChangedEventHandler <Color>(btnColor_SelectedColorChanged);
 }
 public AddNewTraitWindow(User user, TraitCategoryType category)
 {
     InitializeComponent();
     this.User          = user;
     this.TraitCategory = category;
     txtTraitName.BindUser(user, PickListType.Trait, null, category);
 }
 public MultimediaReport(User user, ViewModelBase target, TraitCategoryType lookupType) : base(user)
 {
     Target     = target;
     ObjectType = lookupType;
     RegisterViewer(new TabularDataViewerSource());
     RegisterViewer(new MultimediaThumbnailViewerSource());
 }
Пример #5
0
 public AddNewTraitWindow(User user, TraitCategoryType category)
 {
     InitializeComponent();
     this.User = user;
     this.TraitCategory = category;
     txtTraitName.BindUser(user, PickListType.Trait, null, category);
 }
Пример #6
0
 public MultimediaReport(User user, ViewModelBase target, TraitCategoryType lookupType)
     : base(user)
 {
     Target = target;
     ObjectType = lookupType;
     RegisterViewer(new TabularDataViewerSource());
     RegisterViewer(new MultimediaThumbnailViewerSource());
 }
        public TraitControl(User user, TraitCategoryType category, ViewModelBase owner, bool RDEMode = false) : base(user, "Traits:" + category.ToString() + ":" + (owner == null ? -1 : owner.ObjectID.Value))
        {
            this.TraitCategory = category;
            this.Owner         = owner;
            _rdeMode           = RDEMode;

            InitializeComponent();
        }
Пример #8
0
        public TraitControl(User user, TraitCategoryType category, ViewModelBase owner, bool RDEMode = false)
            : base(user, "Traits:" + category.ToString() + ":" + (owner == null ? -1 : owner.ObjectID.Value))
        {
            this.TraitCategory = category;
            this.Owner = owner;
            _rdeMode = RDEMode;

            InitializeComponent();
        }
Пример #9
0
        public static int GetTraitCategoryTypeID(TraitCategoryType type)
        {
            lock (_IDMap) {
                if (!_IDMap.ContainsKey(type)) {
                    var service = new XMLIOService(PluginManager.Instance.User);
                    var id = service.GetTraitCategoryID(type.ToString());
                    _IDMap[type] = id;
                }
            }

            return _IDMap[type];
        }
Пример #10
0
        public static int GetTraitCategoryTypeID(TraitCategoryType type)
        {
            lock (_IDMap) {
                if (!_IDMap.ContainsKey(type))
                {
                    var service = new XMLIOService(PluginManager.Instance.User);
                    var id      = service.GetTraitCategoryID(type.ToString());
                    _IDMap[type] = id;
                }
            }

            return(_IDMap[type]);
        }
        public SpecializedMultimediaManager(User user, ToolsPlugin plugin, TraitCategoryType category, int intraCategoryId)
            : base(user, string.Format("Multimedia:{0}:{1}", category, intraCategoryId ))
        {
            InitializeComponent();
            this.Plugin = plugin;
            this.TraitCategory = category;
            this.IntraCategoryID = intraCategoryId;
            var proxy = new BuiltInProxyViewModel(intraCategoryId);
            _content = new MultimediaControl(User, category, proxy) { Margin = new Thickness(6) };
            this.Content = _content;

            Loaded += new RoutedEventHandler(SpecializedMultimediaManager_Loaded);
        }
Пример #12
0
        public TraitElementControl(User user, TraitViewModel model, TraitCategoryType categoryType)
        {
            this.Model = model;
            DataContext = model;
            InitializeComponent();
            txtValue.BindUser(user, PickListType.DistinctTraitList, model.Name, categoryType);
            if (!String.IsNullOrEmpty(model.Comment)) {
                commentLink.Inlines.Clear();
                commentLink.Inlines.Add(new Run("Edit comment"));
            }

            Model.DataChanged += new DataChangedHandler((vm) => {
                FireTraitChanged();
            });
        }
Пример #13
0
        public SpecializedMultimediaManager(User user, ToolsPlugin plugin, TraitCategoryType category, int intraCategoryId) : base(user, string.Format("Multimedia:{0}:{1}", category, intraCategoryId))
        {
            InitializeComponent();
            this.Plugin          = plugin;
            this.TraitCategory   = category;
            this.IntraCategoryID = intraCategoryId;
            var proxy = new BuiltInProxyViewModel(intraCategoryId);

            _content = new MultimediaControl(User, category, proxy)
            {
                Margin = new Thickness(6)
            };
            this.Content = _content;

            Loaded += new RoutedEventHandler(SpecializedMultimediaManager_Loaded);
        }
        public TraitElementControl(User user, TraitViewModel model, TraitCategoryType categoryType)
        {
            this.Model  = model;
            DataContext = model;
            InitializeComponent();
            txtValue.BindUser(user, PickListType.DistinctTraitList, model.Name, categoryType);
            if (!String.IsNullOrEmpty(model.Comment))
            {
                commentLink.Inlines.Clear();
                commentLink.Inlines.Add(new Run("Edit comment"));
            }

            Model.DataChanged += new DataChangedHandler((vm) => {
                FireTraitChanged();
            });
        }
        public PestHostAssociateControl(User user, TraitCategoryType category, ViewModelBase owner)
        {
            InitializeComponent();
            this.Category = category;

            txtRegion.BindUser(user, LookupType.Region);
            txtSource.BindUser(user, "tblAssociate", "vchrSource");
            txtReference.BindUser(user, LookupType.Reference);

            txtAssociate.PreviewDragOver  += new DragEventHandler(txtAssociate_PreviewDragOver);
            txtAssociate.PreviewDragEnter += new DragEventHandler(txtAssociate_PreviewDragOver);

            txtAssociate.PreviewDrop += new DragEventHandler(txtAssociate_PreviewDrop);

            txtAssociate.KeyUp += new KeyEventHandler(txtAssociate_KeyUp);

            this.DataContextChanged += new DependencyPropertyChangedEventHandler(PestHostAssociateControl_DataContextChanged);
        }
Пример #16
0
        public AssociatesControl(TraitCategoryType category, ViewModelBase owner)
        {
            InitializeComponent();
            this.Category = category;

            var itemsList =new List<String>(new String[] {"Description", "Taxon", "Material" });
            cmbType.ItemsSource = itemsList;

            if (category != TraitCategoryType.Taxon) {
                contentGrid.RowDefinitions[2].Height = new GridLength(0);
                lblRelAToB.Content = "Specimen is a:";
            } else {
                txtPoliticalRegion.BindUser(User, LookupType.Region);
                lblRelAToB.Content = "Taxon is a:";
            }

            cmbType.SelectionChanged += new SelectionChangedEventHandler(cmbType_SelectionChanged);
            DataContextChanged += new DependencyPropertyChangedEventHandler(AssociatesControl_DataContextChanged);

            txtSource.BindUser(User, "tblAssociate", "vchrSource");
            txtReference.BindUser(User, LookupType.Reference);
        }
        public ReferencesControl(User user, TraitCategoryType category, int?intraCategoryID) : base(user, String.Format("References::{0}::{1}", category, intraCategoryID))
        {
            InitializeComponent();

            this.Category        = category;
            this.IntraCategoryID = intraCategoryID.Value;

            txtRefType.Click += new RoutedEventHandler((source, e) => {
                var reftype = SelectRefType();
                if (!string.IsNullOrEmpty(reftype))
                {
                    txtRefType.Text = reftype;
                }
            });

            txtReference.BindUser(user, LookupType.Reference);
            txtReference.ObjectSelected += new ObjectSelectedHandler(txtReference_ObjectSelected);

            var list = Service.GetReferenceLinks(category.ToString(), IntraCategoryID);

            _model = new ObservableCollection <RefLinkViewModel>(list.ConvertAll((rl) => {
                var vm          = new RefLinkViewModel(rl);
                vm.DataChanged += new DataChangedHandler((changed) => {
                    RegisterUniquePendingChange(new UpdateRefLinkCommand(vm.Model, Category.ToString()));
                });
                return(vm);
            }));

            gridRefLink.IsEnabled = false;

            lstReferences.ItemsSource       = _model;
            lstReferences.SelectionChanged += new SelectionChangedEventHandler((source, e) => {
                if (!gridRefLink.IsEnabled)
                {
                    gridRefLink.IsEnabled = true;
                }
                gridRefLink.DataContext = lstReferences.SelectedItem;
            });
        }
Пример #18
0
        public ReferencesControl(User user, TraitCategoryType category, int? intraCategoryID)
            : base(user, String.Format("References::{0}::{1}", category, intraCategoryID))
        {
            InitializeComponent();

            this.Category = category;
            this.IntraCategoryID = intraCategoryID.Value;

            txtRefType.Click += new RoutedEventHandler((source, e) => {
                var reftype = SelectRefType();
                if (!string.IsNullOrEmpty(reftype)) {
                    txtRefType.Text = reftype;
                }

            });

            txtReference.BindUser(user, LookupType.Reference);
            txtReference.ObjectSelected += new ObjectSelectedHandler(txtReference_ObjectSelected);

            var list = Service.GetReferenceLinks(category.ToString(), IntraCategoryID);
            _model = new ObservableCollection<RefLinkViewModel>(list.ConvertAll((rl) => {
                var vm = new RefLinkViewModel(rl);
                vm.DataChanged += new DataChangedHandler((changed) => {
                    RegisterUniquePendingChange(new UpdateRefLinkCommand(vm.Model, Category.ToString()));
                });
                return vm;
            }));

            gridRefLink.IsEnabled = false;

            lstReferences.ItemsSource = _model;
            lstReferences.SelectionChanged += new SelectionChangedEventHandler((source, e) => {
                if (!gridRefLink.IsEnabled) {
                    gridRefLink.IsEnabled = true;
                }
                gridRefLink.DataContext = lstReferences.SelectedItem;
            });
        }
Пример #19
0
        public MultimediaControl(User user, TraitCategoryType category, ViewModelBase owner)
            : base(user, "Multimedia:" + category.ToString() + ":" + (owner == null ? -1 : owner.ObjectID.Value))
        {
            this.CategoryType = category;
            this.Owner = owner;
            InitializeComponent();

            txtMultimediaType.BindUser(user, PickListType.MultimediaType, null, TraitCategoryType.Multimedia);

            _tempFileManager = new KeyedObjectTempFileManager<int?>((mmId) => {
                if (mmId.HasValue) {
                    byte[] bytes = Service.GetMultimediaBytes(mmId.Value);
                    if (bytes != null) {
                        return new MemoryStream(bytes);
                    }
                }
                return null;
            });

            detailGrid.IsEnabled = false;

            thumbList.SelectionChanged += new SelectionChangedEventHandler(thumbList_SelectionChanged);
        }
Пример #20
0
        public MultimediaControl(User user, TraitCategoryType category, ViewModelBase owner) : base(user, "Multimedia:" + category.ToString() + ":" + (owner == null ? -1 : owner.ObjectID.Value))
        {
            this.CategoryType = category;
            this.Owner        = owner;
            InitializeComponent();

            txtMultimediaType.BindUser(user, PickListType.MultimediaType, null, TraitCategoryType.Multimedia);

            _tempFileManager = new KeyedObjectTempFileManager <int?>((mmId) => {
                if (mmId.HasValue)
                {
                    byte[] bytes = Service.GetMultimediaBytes(mmId.Value);
                    if (bytes != null)
                    {
                        return(new MemoryStream(bytes));
                    }
                }
                return(null);
            });

            detailGrid.IsEnabled = false;

            thumbList.SelectionChanged += new SelectionChangedEventHandler(thumbList_SelectionChanged);
        }
Пример #21
0
        public static string ShowPickList(User user, PickListType type, string categoryName, TraitCategoryType traitCategory, string filter = null, Control owner = null, Control ownerAncestor = null)
        {
            Func <IEnumerable <string> > itemsFunc   = null;
            Func <string, bool>          addItemFunc = null;
            string caption = "Select a value";
            var    service = new SupportService(user);

            switch (type)
            {
            case PickListType.Phrase:
                int phraseCategoryID = service.GetPhraseCategoryId(categoryName, true);
                caption   = String.Format("Values for '{0}'", categoryName);
                itemsFunc = () => service.GetPhrases(phraseCategoryID).ConvertAll((phrase) => phrase.PhraseText);

                addItemFunc = (newphrase) => {
                    Phrase phrase = new Phrase();
                    phrase.PhraseID    = -1;
                    phrase.PhraseCatID = phraseCategoryID;
                    phrase.PhraseText  = newphrase;
                    // Save the new phrase value...
                    service.InsertPhrase(phrase);
                    return(true);
                };
                break;

            case PickListType.DistinctTraitList:
                caption   = String.Format("Values for '{0}'", categoryName);
                itemsFunc = () => service.GetTraitValues(categoryName, traitCategory.ToString());
                break;

            case PickListType.DistinctList:

                break;

            case PickListType.Trait:
                caption   = String.Format("Existing trait names for {0}", traitCategory.ToString());
                itemsFunc = () => service.GetTraitNamesForCategory(traitCategory.ToString());
                break;

            case PickListType.MultimediaType:
                caption   = "Select a multimedia type...";
                itemsFunc = () => {
                    return(service.GetMultimediaTypes().ConvertAll((mmtype) => mmtype.Name));
                };
                break;

            case PickListType.RefLinkType:
                caption   = "Reference Link types";
                itemsFunc = () => {
                    var list = service.GetRefLinkTypes();
                    SortedDictionary <string, string> filtered = new SortedDictionary <string, string>();
                    // Remove the duplicates...Something really dodgey is going on when inserting ref links, it looks like
                    // duplicate ref link types are being created.
                    foreach (string item in list)
                    {
                        filtered[item] = item;
                    }
                    return(filtered.Keys);
                };
                addItemFunc = (newval) => {
                    service.InsertRefLinkType(newval, traitCategory.ToString());
                    return(true);
                };
                break;

            default:
                throw new Exception("Unhandled pick list type: " + type);
            }

            PickListWindow frm = new PickListWindow(user, caption, itemsFunc, addItemFunc, filter, owner, ownerAncestor);

            if (frm.ShowDialog().GetValueOrDefault(false))
            {
                return(frm.SelectedValue as string);
            }
            ;

            return(null);
        }
Пример #22
0
 public AssociatesOneToManyController(User user, TraitCategoryType category, ViewModelBase owner)
 {
     this.User = user;
     this.Category = category;
     this.Owner = owner;
 }
Пример #23
0
 public PickListControl(User user, PickListType type, string phraseCategory, TraitCategoryType traitCategory)
 {
     InitializeComponent();
     BindUser(user, type, phraseCategory, traitCategory);
     GotFocus += new RoutedEventHandler(PickListControl_GotFocus);
 }
Пример #24
0
 public PickListControl(User user, PickListType type, string phraseCategory, TraitCategoryType traitCategory)
 {
     InitializeComponent();
     BindUser(user, type, phraseCategory, traitCategory);
     GotFocus += new RoutedEventHandler(PickListControl_GotFocus);
 }
 public AssociatesOneToManyController(User user, TraitCategoryType category, ViewModelBase owner)
 {
     this.User     = user;
     this.Category = category;
     this.Owner    = owner;
 }
Пример #26
0
        public static string ShowPickList(User user, PickListType type, string categoryName, TraitCategoryType traitCategory, string filter = null, Control owner = null, Control ownerAncestor = null)
        {
            Func<IEnumerable<string>> itemsFunc = null;
            Func<string, bool> addItemFunc = null;
            string caption = "Select a value";
            var service = new SupportService(user);
            switch (type) {
                case PickListType.Phrase:
                    int phraseCategoryID = service.GetPhraseCategoryId(categoryName, true);
                    caption = String.Format("Values for '{0}'", categoryName);
                    itemsFunc = () => service.GetPhrases(phraseCategoryID).ConvertAll((phrase) => phrase.PhraseText);

                    addItemFunc = (newphrase) => {
                        Phrase phrase = new Phrase();
                        phrase.PhraseID = -1;
                        phrase.PhraseCatID = phraseCategoryID;
                        phrase.PhraseText = newphrase;
                        // Save the new phrase value...
                        service.InsertPhrase(phrase);
                        return true;
                    };
                    break;
                case PickListType.DistinctTraitList:
                    caption = String.Format("Values for '{0}'", categoryName);
                    itemsFunc = () => service.GetTraitValues(categoryName, traitCategory.ToString());
                    break;
                case PickListType.DistinctList:

                    break;
                case PickListType.Trait:
                    caption = String.Format("Existing trait names for {0}", traitCategory.ToString());
                    itemsFunc = () => service.GetTraitNamesForCategory(traitCategory.ToString());
                    break;
                case PickListType.MultimediaType:
                    caption = "Select a multimedia type...";
                    itemsFunc = () => {
                        return service.GetMultimediaTypes().ConvertAll((mmtype) => mmtype.Name);
                    };
                    break;
                case PickListType.RefLinkType:
                    caption = "Reference Link types";
                    itemsFunc = () => {
                        var list = service.GetRefLinkTypes();
                        SortedDictionary<string, string> filtered = new SortedDictionary<string, string>();
                        // Remove the duplicates...Something really dodgey is going on when inserting ref links, it looks like
                        // duplicate ref link types are being created.
                        foreach (string item in list) {
                            filtered[item] = item;
                        }
                        return filtered.Keys;
                    };
                    addItemFunc = (newval) => {
                        service.InsertRefLinkType(newval, traitCategory.ToString());
                        return true;
                    };
                    break;
                default:
                    throw new Exception("Unhandled pick list type: " + type);
            }

            PickListWindow frm = new PickListWindow(user, caption, itemsFunc, addItemFunc, filter, owner, ownerAncestor);

            if (frm.ShowDialog().GetValueOrDefault(false)) {
                return frm.SelectedValue as string;
            };

            return null;
        }
 public UpdateMultimediaLinkCommand(MultimediaLink model, TraitCategoryType category)
     : base(model) {
 }
 public InsertMultimediaLinkCommand(MultimediaLink model, TraitCategoryType category, ViewModelBase owner) : base(model) {
     this.Category = category;
     this.Owner = owner;
 }
Пример #29
0
        public void BindUser(User user, PickListType pickListType, String categoryName, TraitCategoryType traitCategory)
        {
            this.User          = user;
            this.CategoryName  = categoryName;
            this.TraitCategory = traitCategory;
            this.PickListType  = pickListType;

            if (pickListType == Extensibility.PickListType.MultimediaType)
            {
                txt.IsReadOnly = true;
            }

            this.Service = new SupportService(user);

            txt.PreviewKeyDown += new KeyEventHandler(txt_PreviewKeyDown);
        }
Пример #30
0
        public void BindUser(User user, PickListType pickListType, String categoryName, TraitCategoryType traitCategory)
        {
            this.User = user;
            this.CategoryName = categoryName;
            this.TraitCategory = traitCategory;
            this.PickListType = pickListType;

            if (pickListType == Extensibility.PickListType.MultimediaType) {
                txt.IsReadOnly = true;
            }

            this.Service = new SupportService(user);

            txt.PreviewKeyDown += new KeyEventHandler(txt_PreviewKeyDown);
        }