コード例 #1
0
        public WBQueryClause(WBColumn column, Comparators comparator, Object value)
        {
            Column     = column;
            Comparator = comparator;
            Value      = value;

            switch (Comparator)
            {
            case Comparators.Equals: { break; }

            case Comparators.NotEquals: { break; }

            case Comparators.LessThan: { break; }

            case Comparators.LessThanEquals: { break; }

            case Comparators.GreaterThan: { break; }

            case Comparators.GreaterThanEquals: { break; }

            case Comparators.IsNull: { break; }

            case Comparators.IsNotNull: { break; }

            default: throw new NotImplementedException("The selected comparator has not been implemented yet.");
            }

            UseDescendants = false;
        }
コード例 #2
0
 public WBDynamicFormattedIconTemplateField(String formatString, List <WBColumn> columns, bool useLowerCaseIconURL, WBColumn linkURLDataColumn)
 {
     LinkURLDataColumn   = linkURLDataColumn;
     FormatString        = formatString;
     Columns             = columns;
     UseLowerCaseIconURL = useLowerCaseIconURL;
 }
コード例 #3
0
        protected void DocumentsForSubject_Sorting(object sender, GridViewSortEventArgs e)
        {
            WBLogging.Debug("In DocumentsForSubject_Sorting with e.SortExpression = " + e.SortExpression);

            SortExpression = e.SortExpression;

            sortColumn = WBColumn.GetKnownColumnByInternalName(SortExpression);

            if (GridViewSortDirection == SortDirection.Ascending)
            {
                GridViewSortDirection = SortDirection.Descending;
                ascending             = false;
                WBLogging.Debug("In gridView_Sorting setting to descending");
            }
            else
            {
                GridViewSortDirection = SortDirection.Ascending;
                ascending             = true;
                WBLogging.Debug("In gridView_Sorting setting to ascending");
            }

            // If we're re-sorting the data let's start back on page 0:
            DocumentsForSubject.PageIndex = 0;

            RefreshBoundDocumentsList();
        }
コード例 #4
0
        protected void gridView_Sorting(object sender, GridViewSortEventArgs e)
        {
            WBLogging.Debug("In gridView_Sorting with e.SortExpression = " + e.SortExpression);

            string sortExpression = e.SortExpression;

            ViewState["SortExpression"] = sortExpression;

            sortColumn = WBColumn.GetKnownColumnByInternalName(sortExpression);

            if (GridViewSortDirection == SortDirection.Ascending)
            {
                GridViewSortDirection = SortDirection.Descending;
                ascending             = false;
                WBLogging.Debug("In gridView_Sorting setting to descending");
            }
            else
            {
                GridViewSortDirection = SortDirection.Ascending;
                ascending             = true;
                WBLogging.Debug("In gridView_Sorting setting to ascending");
            }

            // If we're re-sorting the data let's start back on page 0:
            gridView.PageIndex = 0;
        }
コード例 #5
0
        private void checkSortState()
        {
            String sortExpression = ViewState["SortExpression"].WBxToString();

            sortColumn = WBColumn.GetKnownColumnByInternalName(sortExpression);

            if (GridViewSortDirection == SortDirection.Ascending)
                ascending = true;
            else
                ascending = false;
        }
コード例 #6
0
ファイル: WBPublishingProcess.cs プロジェクト: OliSharpe/wbf
 public void AddExtraMetadata(WBColumn column, Object value)
 {
     if (value is DateTime)
     {
         this.ExtraMetadataDictionary[column.InternalName] = SPUtility.CreateISO8601DateTimeFromSystemDateTime((DateTime)value);
     }
     else
     {
         this.ExtraMetadataDictionary[column.InternalName] = value.WBxToString();
     }
 }
コード例 #7
0
        public Object this[WBColumn column]
        {
            get
            {
                return(Metadata[column]);
            }

            set
            {
                Metadata[column] = value;
            }
        }
コード例 #8
0
 public bool HasValue(WBColumn column)
 {
     if (IsSPListItem)
     {
         return(_listItem.WBxHasValue(column));
     }
     if (IsSPListItemVersion)
     {
         return(_listItemVersion.WBxHasValue(column));
     }
     return(IsUsingColumn(column) && !IsNullOrEmpty(column));
 }
コード例 #9
0
 public bool IsUsingColumn(WBColumn column)
 {
     if (IsSPListItem)
     {
         return(_listItem.WBxExists(column));
     }
     if (IsSPListItemVersion)
     {
         return(_listItemVersion.WBxExists(column));
     }
     return(_usedColumns.Contains(column));
 }
コード例 #10
0
        private void checkSortState()
        {
            sortColumn = WBColumn.GetKnownColumnByInternalName(SortExpression);

            if (GridViewSortDirection == SortDirection.Ascending)
            {
                ascending = true;
            }
            else
            {
                ascending = false;
            }
        }
コード例 #11
0
        private bool LoadDefaultView()
        {
            SPWeb web = SPContext.Current.Web;

            String selectedViewStyle = web.WBxGetProperty("wbf-wbexplorer-view-style");

            if (String.IsNullOrEmpty(selectedViewStyle))
            {
                return(false);
            }

            SelectedViewStyle = selectedViewStyle;
            SetSortColumn(WBColumn.GetKnownColumnByInternalName(web.WBxGetProperty("wbf-wbexplorer-sort-column")));
            ascending = web.WBxGetBoolProperty("wbf-wbexplorer-sort-ascending");

            if (ascending)
            {
                GridViewSortDirection = SortDirection.Ascending;
            }
            else
            {
                GridViewSortDirection = SortDirection.Descending;
            }


            SelectedWorkBoxStatusFilter = web.WBxGetProperty("wbf-wbexplorer-status-filter");

            SelectedInvolvementFilter = web.WBxGetProperty("wbf-wbexplorer-involvement-filter");
            SelectedRecordsTypeGUID   = web.WBxGetProperty("wbf-wbexplorer-records-type-guid");


            StatusCheckBox.Checked              = web.WBxGetBoolProperty("wbf-wbexplorer-status-check-box");
            RecordsTypeCheckBox.Checked         = web.WBxGetBoolProperty("wbf-wbexplorer-records-type-check-box");
            LastModifiedCheckBox.Checked        = web.WBxGetBoolProperty("wbf-wbexplorer-last-modified-check-box");
            LastVisitedCheckBox.Checked         = web.WBxGetBoolProperty("wbf-wbexplorer-last-visited-check-box");
            DateCreatedCheckBox.Checked         = web.WBxGetBoolProperty("wbf-wbexplorer-date-created-check-box");
            ReferenceDateCheckBox.Checked       = web.WBxGetBoolProperty("wbf-wbexplorer-reference-date-check-box");
            ReferenceIDCheckBox.Checked         = web.WBxGetBoolProperty("wbf-wbexplorer-reference-id-check-box");
            OwningTeamCheckBox.Checked          = web.WBxGetBoolProperty("wbf-wbexplorer-owning-team-check-box");
            InvolvedTeamsCheckBox.Checked       = web.WBxGetBoolProperty("wbf-wbexplorer-involved-teams-check-box");
            VisitingTeamsCheckBox.Checked       = web.WBxGetBoolProperty("wbf-wbexplorer-visiting-teams-check-box");
            InvolvedIndividualsCheckBox.Checked = web.WBxGetBoolProperty("wbf-wbexplorer-involved-individuals-check-box");
            VisitingIndividualsCheckBox.Checked = web.WBxGetBoolProperty("wbf-wbexplorer-visiting-individuals-check-box");

            return(true);
        }
コード例 #12
0
        public List <SPUser> GetMultiUserColumn(WBColumn column)
        {
            switch (BackingType)
            {
            case BackingTypes.SPListItem:
            {
                return(_listItem.WBxGetMultiUserColumn(column));
            }

            case BackingTypes.SPListItemVersion:
            {
                return(_listItemVersion.WBxGetMultiUserColumn(column));
            }

            default: throw new NotImplementedException("The backing type selected has no implementation for GetMultiUserColumn");
            }
        }
コード例 #13
0
        public WBItem(Dictionary <String, String> values)
        {
            _listItem        = null;
            _listItemVersion = null;
            _dictionary      = new Dictionary <WBColumn, Object>();
            BackingType      = BackingTypes.Dictionary;

            if (values != null)
            {
                foreach (String internalColumnName in values.Keys)
                {
                    WBColumn column = WBColumn.GetKnownColumnByInternalName(internalColumnName);
                    if (column == null)
                    {
                        throw new Exception("In WBItem(Dictionary<,>): Not yet handling situation when an unknown internal name is used: " + internalColumnName);
                    }
                    this[column] = values[internalColumnName];
                }
            }

            _valuesHaveChanged = false;
        }
コード例 #14
0
 // Urm... this should be a property surely!! :)
 protected void SetSortColumn(WBColumn column)
 {
     ViewState["SortExpression"] = column.InternalName;
     sortColumn = column;
     OrderBy.WBxSafeSetSelectedValue(column.InternalName);
 }
コード例 #15
0
 private void addColumnAsOption(DropDownList dropDownList, WBColumn column)
 {
     dropDownList.Items.Add(new ListItem(column.PrettyName, column.InternalName));
 }
コード例 #16
0
 public void OrderByDescending(WBColumn column)
 {
     OrderBy(column, false);
 }
コード例 #17
0
 public void OrderBy(WBColumn column, bool ascending)
 {
     this._orderByColumn = column;
     this._ascending     = ascending;
 }
コード例 #18
0
        protected override void Render(HtmlTextWriter writer)
        {
            //WBTaxonomy recordsTypes = WBTaxonomy.GetRecordsTypes(SPContext.Current.Site);
            WBTaxonomy seriesTags = WBTaxonomy.GetSeriesTags(SPContext.Current.Site);

            WBTerm seriesTag = null;

            if (SeriesTag != null && SeriesTag != "")
            {
                Term seriesTagTerm = seriesTags.GetSelectedTermByPath(SeriesTag);
                if (seriesTagTerm != null)
                {
                    seriesTag = new WBTerm(seriesTags, seriesTagTerm);
                }
            }

            WBQuery query = new WBQuery();

            //query.AddEqualsFilter(WBColumn.RecordsType, workBox.RecordsType);

            if (seriesTag != null)
            {
                query.AddEqualsFilter(WBColumn.SeriesTag, seriesTag);
            }

            if (ReferenceID != null && ReferenceID != "")
            {
                query.AddEqualsFilter(WBColumn.ReferenceID, ReferenceID);
            }

            //            if (FilterByOwningTeam)
            //            query.AddEqualsFilter(WBColumn.OwningTeam, workBox.OwningTeam);


            if (sortColumn != null)
            {
                WBLogging.Debug("Sorting in Render with sortColumn: " + sortColumn.DisplayName);
            }
            else
            {
                WBLogging.Debug("SortColumn was null - so sorting by declared record date.");

                sortColumn = WBColumn.DeclaredRecord;
                ascending  = false;
            }

            if (sortColumn != null)
            {
                query.OrderBy(sortColumn, ascending);
            }

            query.AddViewColumn(WBColumn.Name);
            query.AddViewColumn(WBColumn.FileTypeIcon);
            query.AddViewColumn(WBColumn.EncodedAbsoluteURL);
            query.AddViewColumn(WBColumn.ReferenceDate);
            query.AddViewColumn(WBColumn.ProtectiveZone);
            query.AddViewColumn(WBColumn.DeclaredRecord);

            WBFarm farm = WBFarm.Local;

            using (SPSite site = new SPSite(farm.ProtectedRecordsLibraryUrl))
            {
                using (SPWeb web = site.OpenWeb())
                {
                    SPList recordsLibrary = web.GetList(farm.ProtectedRecordsLibraryUrl);

                    DataTable dataTable = recordsLibrary.WBxGetDataTable(site, query, MaxNumDocuments);

                    gridView.DataSource = dataTable;

                    gridView.Columns.Clear();
                    gridView.Columns.Add(WBUtils.DynamicIconTemplateField(WBColumn.FileTypeIcon, WBColumn.EncodedAbsoluteURL));
                    gridView.Columns.Add(WBUtils.HyperLinkField(WBColumn.Name, WBColumn.EncodedAbsoluteURL, sortColumn, ascending));
                    gridView.Columns.Add(WBUtils.BoundField(WBColumn.ReferenceDate, sortColumn, ascending));
                    gridView.Columns.Add(WBUtils.BoundField(WBColumn.ProtectiveZone, sortColumn, ascending));
                    gridView.Columns.Add(WBUtils.BoundField(WBColumn.DeclaredRecord, sortColumn, ascending));

                    gridView.DataBind();
                }
            }

            base.Render(writer);
        }
コード例 #19
0
 public void AddIsNullFilter(WBColumn column)
 {
     _clauses.Add(new WBQueryClause(column, WBQueryClause.Comparators.IsNull, ""));
 }
コード例 #20
0
 public void AddEqualsFilter(WBColumn column, Object value)
 {
     _clauses.Add(new WBQueryClause(column, WBQueryClause.Comparators.Equals, value));
 }
コード例 #21
0
 public void AddFilter(WBColumn column, WBQueryClause.Comparators comparator, Object value)
 {
     _clauses.Add(new WBQueryClause(column, comparator, value));
 }
コード例 #22
0
 public void AddViewColumn(WBColumn column)
 {
     _viewColumns.Add(column);
 }
コード例 #23
0
        protected override void Render(HtmlTextWriter writer)
        {
            WorkBox workBox = WorkBox.GetIfWorkBox(SPContext.Current);

            if (workBox == null)
            {
                errorLiteral.Text = "<i>(You can only use this web part in a work box)</i>";
            }
            else
            {
                WBTaxonomy recordsTypes = WBTaxonomy.GetRecordsTypes(SPContext.Current.Site);
                WBTaxonomy seriesTags   = WBTaxonomy.GetSeriesTags(recordsTypes);

                WBTerm thisSeries = workBox.SeriesTag(seriesTags);

                WBQuery query = new WBQuery();

                query.AddEqualsFilter(WBColumn.RecordsType, workBox.RecordsType);

                if (FilterBySeriesTag)
                {
                    query.AddEqualsFilter(WBColumn.SeriesTag, workBox.SeriesTag(seriesTags));
                }

                if (FilterByReferenceID)
                {
                    query.AddEqualsFilter(WBColumn.ReferenceID, workBox.ReferenceID);
                }

                //            if (FilterByOwningTeam)
                //            query.AddEqualsFilter(WBColumn.OwningTeam, workBox.OwningTeam);


                if (sortColumn != null)
                {
                    WBLogging.Debug("Sorting in Render with sortColumn: " + sortColumn.DisplayName);
                }
                else
                {
                    WBLogging.Debug("Sorting Render - sortColumn was null");
                }

                if (sortColumn != null)
                {
                    query.OrderBy(sortColumn, ascending);
                }

                query.AddViewColumn(WBColumn.Title);
                query.AddViewColumn(WBColumn.WorkBoxURL);
                query.AddViewColumn(WBColumn.ReferenceDate);
                query.AddViewColumn(WBColumn.WorkBoxStatus);

                WBColumn testIfIsThisWorkBox = new WBColumn("IfIsThisWorkBox", WBColumn.DataTypes.VirtualConditional);
                testIfIsThisWorkBox.TestColumnInternalName = WBColumn.Title.InternalName;
                testIfIsThisWorkBox.TestColumnValue        = workBox.Title;
                testIfIsThisWorkBox.ValueIfEqual           = "===>";

                query.AddViewColumn(testIfIsThisWorkBox);

                DataTable dataTable = workBox.Collection.Query(query);

                gridView.DataSource = new DataView(dataTable);

                BoundField testIfIsThisWorkBoxField = WBUtils.BoundField(testIfIsThisWorkBox, HorizontalAlign.Center, sortColumn, ascending);
                testIfIsThisWorkBoxField.HeaderText = "     ";

                gridView.Columns.Add(testIfIsThisWorkBoxField);
                gridView.Columns.Add(WBUtils.FixedIconTemplateField(WorkBox.ICON_16_IMAGE_URL, WBColumn.WorkBoxURL));
                gridView.Columns.Add(WBUtils.HyperLinkField(WBColumn.Title, WBColumn.WorkBoxURL, sortColumn, ascending));
                gridView.Columns.Add(WBUtils.BoundField(WBColumn.ReferenceDate, sortColumn, ascending));
                gridView.Columns.Add(WBUtils.BoundField(WBColumn.WorkBoxStatus, HorizontalAlign.Center, sortColumn, ascending));

                gridView.DataBind();


                if (ShowCreateNewLink)
                {
                    string createNewText = workBox.RecordsType.CreateNewWorkBoxText;
                    string createNewURL  = workBox.Collection.GetUrlForNewDialog(workBox, WorkBox.RELATION_TYPE__DYNAMIC);

                    createNewLink.Text = "<a href=\"#\" onclick=\"javascript: WorkBoxFramework_commandAction('" + createNewURL + "', 600, 500); \">" + createNewText + "</a>";
                }

                workBox.Dispose();
            }

            base.Render(writer);
        }
コード例 #24
0
        public StringBuilder AppendCAMLClauseTo(StringBuilder builder, SPSite site)
        {
            if (RenderForView)
            {
                if (Column.DataType == WBColumn.DataTypes.ManagedMetadata)
                {
                    return(AppendCAMLClause(builder, Column.InternalName, "Text", ((WBTerm)Value).Name));
                }
                else
                {
                    return(AppendCAMLClause(builder, Column.InternalName, "Text", Value.WBxToString()));
                }
            }

            switch (Column.DataType)
            {
            case WBColumn.DataTypes.ManagedMetadata:
            {
                return(AppendMMCAMLClause(builder, site, Column.InternalName, (WBTerm)Value, UseDescendants));
            }

            case WBColumn.DataTypes.Text:
            {
                return(AppendCAMLClause(builder, Column.InternalName, "Text", (String)Value));
            }

            case WBColumn.DataTypes.Integer:
            {
                return(AppendCAMLClause(builder, Column.InternalName, "Number", Value.ToString()));
            }

            case WBColumn.DataTypes.Counter:
            {
                return(AppendCAMLClause(builder, Column.InternalName, "Counter", Value.ToString()));
            }

            case WBColumn.DataTypes.Choice:
            {
                return(AppendCAMLClause(builder, Column.InternalName, "Choice", (String)Value));
            }

            case WBColumn.DataTypes.DateTime:
            {
                String dateTimeString = null;
                if (Value is DateTime)
                {
                    dateTimeString = SPUtility.CreateISO8601DateTimeFromSystemDateTime((DateTime)Value);
                }
                else
                {
                    dateTimeString = Value.WBxToString();
                }

                return(AppendCAMLClause(builder, Column.InternalName, "DateTime", dateTimeString));
            }

            case WBColumn.DataTypes.URL:
            {
                return(AppendCAMLClause(builder, Column.InternalName, "URL", (String)Value));
            }

            case WBColumn.DataTypes.Boolean:
            {
                if ((bool)Value)
                {
                    return(AppendCAMLClause(builder, Column.InternalName, "Integer", "1"));
                }
                else
                {
                    return(AppendCAMLClause(builder, Column.InternalName, "Integer", "0"));
                }
            }
            }

            throw new NotImplementedException("Creation of CAML clauses for WBColumns of data type " + WBColumn.DataTypeToString(Column.DataType) + " has not yet been implmenented");
        }
コード例 #25
0
        public Object this[WBColumn column]
        {
            get
            {
                UseColumn(column);

                Object value = null;

                switch (BackingType)
                {
                case BackingTypes.SPListItem:
                {
                    value = _listItem.WBxGet(column);
                    // WBLogging.Debug("Got value: " + value + " for column: " + column.DisplayName);
                    break;
                }

                case BackingTypes.SPListItemVersion:
                {
                    value = _listItemVersion.WBxGet(column);
                    // WBLogging.Debug("Got value: " + value + " for column: " + column.DisplayName);
                    break;
                }

                case BackingTypes.Dictionary:
                {
                    if (_dictionary.ContainsKey(column))
                    {
                        value = _dictionary[column];
                    }
                    break;
                }

                default: throw new NotImplementedException("The backing type selected has no implementation for public Object this[WBColumn column]");
                }

                // This approach allows for any generic column based processing of the returned value
                return(value);
            }

            set
            {
                UseColumn(column);
                _valuesHaveChanged = true;

                // First we might do some general processing of the value being set dependent on the type of column:
                Object processedValue = value;

                if (column.DataType == WBColumn.DataTypes.ManagedMetadata)
                {
                    processedValue = processedValue.WBxToString();
                }


                // Then we set the value in a way that depends on what is backing the item:
                switch (BackingType)
                {
                case BackingTypes.SPListItem:
                {
                    // WBLogging.Debug("Setting WBItem metadata value backed by SPListItem using Column: " + column.DisplayName + "  Value: " + processedValue);
                    _listItem.WBxSet(column, processedValue);
                    break;
                }

                case BackingTypes.SPListItemVersion:
                {
                    throw new Exception("In call to set column value for a WBItem backed by SPListItemVersion which are read only so cannot have any value set");
                }

                case BackingTypes.Dictionary:
                {
                    _dictionary[column] = processedValue;
                    break;
                }

                default: throw new NotImplementedException("The backing type selected has no implementation for public Object this[WBColumn column]");
                }
            }
        }
コード例 #26
0
ファイル: WBPublishingProcess.cs プロジェクト: OliSharpe/wbf
 // Questionnable if these versions are really needed!
 public void AddExtraMetadata(WBColumn column, String value)
 {
     this.ExtraMetadataDictionary[column.InternalName] = value;
 }
コード例 #27
0
 public bool IsNotEmpty(WBColumn column)
 {
     return(HasValue(column));
 }
コード例 #28
0
 public WBIconItemTemplateField(WBColumn iconImageURLDataColumn, WBColumn linkURLDataColumn)
 {
     LinkURLDataColumn      = linkURLDataColumn;
     IconImageURLDataColumn = iconImageURLDataColumn;
     StaticIconImageURL     = null;
 }
コード例 #29
0
 public WBIconItemTemplateField(String staticIconImageURL, WBColumn linkURLDataColumn)
 {
     LinkURLDataColumn      = linkURLDataColumn;
     StaticIconImageURL     = staticIconImageURL;
     IconImageURLDataColumn = null;
 }
コード例 #30
0
 public void OrderByAscending(WBColumn column)
 {
     OrderBy(column, true);
 }