Beispiel #1
0
        private void SplashInit()
        {
            NextButton        = FindViewById <ImageButton>(Resource.Id.next_button);
            SkipButton        = FindViewById <Button>(Resource.Id.skip_button);
            SkipButton.Click += SkipToEnd;;
            NextButton.Click += NextButton_Click;

            FindViewById <TextView>(Resource.Id.goto_login).Click += Goto_LoginPage;
            ConstraintLayout      pagesHolder     = FindViewById <ConstraintLayout>(Resource.Id.pages_holder);
            PagesGestureListener  gestureListener = new PagesGestureListener(this);
            GestureDetectorCompat gestureDetector = new GestureDetectorCompat(this, gestureListener);

            pagesHolder.SetOnTouchListener(new PagesGestureRecognizer(gestureDetector));
            FindViewById <ImageView>(Resource.Id.number_signup).Click   += PhoneImageViewBtn_Click;
            FindViewById <ImageView>(Resource.Id.google_signup).Click   += GoogleSignup_Click;
            FindViewById <ImageView>(Resource.Id.facebook_signup).Click += FacebookSignup_Click;
            FindViewById <ImageView>(Resource.Id.email_signup).Click    += EmailLayout_Click;
            SplashBaseLayout = FindViewById <RelativeLayout>(Resource.Id.base_layout);

            IndicatorLayout indicators = FindViewById <IndicatorLayout>(Resource.Id.indicatorLayout);

            indicators.NumberOfIndicators = 3;

            FastFitPath            = FindViewById <ImageView>(Resource.Id.fast_fit_path_imageview);
            FastFitInitialDrawable = FastFitPath.Drawable;
        }
Beispiel #2
0
        /// <summary>
        /// 更新排序字段
        /// </summary>
        /// <param name="message">消息</param>
        /// <returns>状态</returns>
        public int UpdateOrderNum(CMessage message)
        {
            List <IndicatorLayout> layouts = new List <IndicatorLayout>();

            GetLayouts(layouts, message.m_body, message.m_bodyLength);
            int layoutsSize = layouts.Count;
            List <IndicatorLayout> updateLayouts = new List <IndicatorLayout>();

            for (int i = 0; i < layoutsSize; i++)
            {
                IndicatorLayout receive = layouts[i];
                String[]        ids     = receive.m_layoutID.Split(new String[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                int             idsSize = ids.Length;
                for (int j = 0; j < idsSize; j++)
                {
                    String sql = String.Format("UPDATE INDICATORLAYOUT SET ORDERNUM = {0} WHERE USERID = {1} AND LAYOUTID = '{2}'",
                                               j, receive.m_userID, CStrA.GetDBString(ids[j]));
                    SQLiteConnection conn = new SQLiteConnection(m_connectStr);
                    SQLiteCommand    cmd  = conn.CreateCommand();
                    cmd.CommandText = sql;
                    conn.Open();
                    cmd.ExecuteNonQuery();
                    conn.Close();
                }
                updateLayouts.Add(receive);
            }
            int ret = Send(message, updateLayouts, true);

            updateLayouts.Clear();
            layouts.Clear();
            return(ret);
        }
Beispiel #3
0
        /// <summary>
        /// 删除布局
        /// </summary>
        /// <param name="message">消息</param>
        /// <returns>状态</returns>
        public int DeleteLayouts(CMessage message)
        {
            List <IndicatorLayout> layouts = new List <IndicatorLayout>();

            GetLayouts(layouts, message.m_body, message.m_bodyLength);
            int layoutsSize = layouts.Count;
            List <IndicatorLayout> deleteLayouts = new List <IndicatorLayout>();

            for (int i = 0; i < layoutsSize; i++)
            {
                IndicatorLayout  receive = layouts[i];
                String           sql     = String.Format("DELETE FROM INDICATORLAYOUT WHERE USERID = {0} AND LAYOUTID = '{1}'", receive.m_userID, CStrA.GetDBString(receive.m_layoutID));
                SQLiteConnection conn    = new SQLiteConnection(m_connectStr);
                SQLiteCommand    cmd     = conn.CreateCommand();
                cmd.CommandText = sql;
                conn.Open();
                cmd.ExecuteNonQuery();
                conn.Close();
                deleteLayouts.Add(receive);
            }
            int ret = Send(message, deleteLayouts, true);

            layouts.Clear();
            deleteLayouts.Clear();
            return(ret);
        }
Beispiel #4
0
        /// <summary>
        /// 添加布局
        /// </summary>
        /// <param name="message">消息</param>
        /// <returns>状态</returns>
        public int AddJiras(CMessage message)
        {
            List <Jira> layouts = new List <Jira>();

            GetLayouts(layouts, message.m_body, message.m_bodyLength);
            int layoutsSize = layouts.Count;
            List <IndicatorLayout> addLayouts = new List <IndicatorLayout>();

            for (int i = 0; i < layoutsSize; i++)
            {
                IndicatorLayout receive = layouts[i];
                receive.m_layoutID = Guid.NewGuid().ToString();
                String sql = String.Format("INSERT INTO INDICATORLAYOUT(LAYOUTID, USERID, NAME, TEXT, TYPE, ORDERNUM, CREATETIME, MODIFYTIME) values ('{0}', {1}, '{2}', '{3}', {4}, {5}, '1970-1-1', '1970-1-1')",
                                           CStrA.GetDBString(receive.m_layoutID), receive.m_userID, CStrA.GetDBString(receive.m_name), CStrA.GetDBString(receive.m_text), receive.m_type, receive.m_orderNum);
                SQLiteConnection conn = new SQLiteConnection(m_connectStr);
                conn.Open();
                SQLiteCommand cmd = conn.CreateCommand();
                cmd.CommandText = sql;
                cmd.ExecuteNonQuery();
                conn.Close();
                addLayouts.Add(receive);
            }
            int ret = Send(message, addLayouts, true);

            layouts.Clear();
            addLayouts.Clear();
            return(ret);
        }
Beispiel #5
0
 void StartLoading()
 {
     backgroundDark.BackgroundColor = new Color(0, 0, 0, 0.5);
     backgroundDark.IsVisible       = true;
     mainLayout.IsEnabled           = false;
     IndicatorLayout.Start();
 }
Beispiel #6
0
        /// <summary>
        /// 更新模版的排序
        /// </summary>
        /// <param name="requestID">请求ID</param>
        /// <param name="userID">用户ID</param>
        /// <param name="ids">ID</param>
        /// <returns>状态</returns>
        public int UpdateOrderNum(int requestID, int userID, List <String> ids)
        {
            String str     = "";
            int    idsSize = ids.Count;

            for (int i = 0; i < idsSize; i++)
            {
                str += ids[i];
                if (i != idsSize - 1)
                {
                    str += ",";
                }
            }
            IndicatorLayout layout = new IndicatorLayout();

            layout.m_layoutID = str;
            layout.m_userID   = userID;
            List <IndicatorLayout> layouts = new List <IndicatorLayout>();

            layouts.Add(layout);
            int ret = Send(FUNCTIONID_JIRA_UPDATEORDERNUM, requestID, layouts);

            layouts.Clear();
            return(ret > 0 ? 1 : 0);
        }
Beispiel #7
0
        void EndLoading()
        {
            backgroundDark.IsVisible = false;

            mainLayout.IsEnabled = true;
            IndicatorLayout.Stop();
        }
Beispiel #8
0
        /// <summary>
        /// 新建
        /// </summary>
        public void Create()
        {
            IndicatorLayout layout = new IndicatorLayout();

            layout.m_name   = "新的布局";
            layout.m_text   = m_chart.GetIndicatorLayout();
            layout.m_userID = DataCenter.UserID;
            m_indicatorLayoutService.AddLayout(m_indicatorLayoutService.OperatorRequestID, layout);
        }
Beispiel #9
0
        /// <summary>
        /// 保存布局
        /// </summary>
        public void Save()
        {
            IndicatorLayout layout = new IndicatorLayout();

            GetLayout(ref layout);
            if (layout.m_layoutID != null && layout.m_layoutID.Length > 0)
            {
                m_indicatorLayoutService.UpdateLayout(m_indicatorLayoutService.OperatorRequestID, layout);
            }
        }
Beispiel #10
0
        /// <summary>
        /// 设置布局
        /// </summary>
        /// <param name="var">变量</param>
        /// <returns>结果</returns>
        public double SetLayout(CVariable var)
        {
            IndicatorLayout indicatorLayout = new IndicatorLayout();

            if (DataCenter.IndicatorLayoutService.GetLayoutByName(m_indicator.GetText(var.m_parameters[0]), ref indicatorLayout))
            {
                m_chart.SetIndicatorLayout(indicatorLayout.m_layoutID, indicatorLayout.m_text);
            }
            return(1);
        }
Beispiel #11
0
        /// <summary>
        /// 删除布局
        /// </summary>
        /// <param name="requestID">请求ID</param>
        /// <param name="layout">布局</param>
        /// <returns>状态</returns>
        public int DeleteLayout(int requestID, IndicatorLayout layout)
        {
            List <IndicatorLayout> layouts = new List <IndicatorLayout>();

            layouts.Add(layout);
            int ret = Send(FUNCTIONID_JIRA_DELETEJIRAS, requestID, layouts);

            layouts.Clear();
            return(ret > 0 ? 1 : 0);
        }
Beispiel #12
0
        /// <summary>
        /// 更新布局
        /// </summary>
        /// <param name="layout">布局</param>
        public void UpdateLayouts(IndicatorLayout layout)
        {
            String sql = String.Format("UPDATE INDICATORLAYOUT SET NAME = '{0}', TEXT = '{1}', TYPE = {2}, ORDERNUM = {3} WHERE USERID = {4} AND LAYOUTID = '{5}'",
                                       CStrA.GetDBString(layout.m_name), CStrA.GetDBString(layout.m_text), layout.m_type, layout.m_orderNum, layout.m_userID, CStrA.GetDBString(layout.m_layoutID));
            SQLiteConnection conn = new SQLiteConnection(m_connectStr);
            SQLiteCommand    cmd  = conn.CreateCommand();

            cmd.CommandText = sql;
            conn.Open();
            cmd.ExecuteNonQuery();
            conn.Close();
        }
Beispiel #13
0
        /// <summary>
        /// 删除
        /// </summary>
        public void Delete()
        {
            List <GridRow> selectedRows     = m_gridLayouts.SelectedRows;
            int            selectedRowsSize = selectedRows.Count;

            if (selectedRowsSize > 0)
            {
                String          layoutID = selectedRows[0].GetCell(0).Text;
                IndicatorLayout layout   = new IndicatorLayout();
                m_indicatorLayoutService.GetLayoutByID(layoutID, ref layout);
                m_indicatorLayoutService.DeleteLayout(m_indicatorLayoutService.OperatorRequestID, layout);
            }
        }
Beispiel #14
0
        /// <summary>
        /// 获取布局信息
        /// </summary>
        /// <param name="template">布局信息</param>
        public void GetLayout(ref IndicatorLayout layout)
        {
            TextBoxA       txtLayoutName  = GetTextBox("txtLayoutName");
            LayoutScaleDiv layoutScaleDiv = FindControl("divLayoutScale") as LayoutScaleDiv;

            if (m_layout.m_layoutID != null && m_layout.m_layoutID.Length > 0)
            {
                layout.m_layoutID = m_layout.m_layoutID;
            }
            layout.m_name   = txtLayoutName.Text;
            layout.m_text   = layoutScaleDiv.LayoutStr;
            layout.m_userID = DataCenter.UserID;
        }
        private void removeIndicatorViews()
        {
            if (null != mIndicatorIvTop)
            {
                RefreshableViewWrapper.RemoveView(mIndicatorIvTop);
                mIndicatorIvTop = null;
            }

            if (null != mIndicatorIvBottom)
            {
                RefreshableViewWrapper.RemoveView(mIndicatorIvBottom);
                mIndicatorIvBottom = null;
            }
        }
Beispiel #16
0
        /// <summary>
        /// 根据ID获取布局
        /// </summary>
        /// <param name="layoutID">布局ID</param>
        /// <param name="layout">布局</param>
        /// <returns>状态</returns>
        public bool GetLayoutByID(String layoutID, ref IndicatorLayout layout)
        {
            int layoutsSize = m_layouts.Count;

            for (int i = 0; i < layoutsSize; i++)
            {
                if (m_layouts[i].m_layoutID == layoutID)
                {
                    layout = m_layouts[i];
                    return(true);
                }
            }
            return(false);
        }
Beispiel #17
0
        /// <summary>
        /// 获取布局信息
        /// </summary>
        /// <param name="message">消息</param>
        /// <returns>状态</returns>
        public int GetLayouts(CMessage message)
        {
            IndicatorLayout        receive = new IndicatorLayout();
            List <IndicatorLayout> layouts = new List <IndicatorLayout>();

            GetLayouts(layouts, message.m_body, message.m_bodyLength);
            receive = layouts[0];
            layouts.Clear();
            GetLayouts(layouts, receive.m_userID, receive.m_layoutID);
            int ret = Send(message, layouts, false);

            layouts.Clear();
            return(ret);
        }
Beispiel #18
0
        /// <summary>
        /// 应用
        /// </summary>
        private void Apply()
        {
            String         layoutID         = "";
            List <GridRow> selectedRows     = m_gridLayouts.SelectedRows;
            int            selectedRowsSize = selectedRows.Count;

            if (selectedRowsSize > 0)
            {
                layoutID = selectedRows[0].GetCell(0).Text;
            }
            IndicatorLayout indicatorLayout = new IndicatorLayout();

            if (m_indicatorLayoutService.GetLayoutByID(layoutID, ref indicatorLayout))
            {
                m_chart.SetIndicatorLayout(indicatorLayout.m_layoutID, indicatorLayout.m_text);
            }
        }
Beispiel #19
0
        /// <summary>
        /// 加载布局
        /// </summary>
        /// <param name="layout">布局信息</param>
        private void LoadLayout(IndicatorLayout layout)
        {
            TextBoxA       txtLayoutName  = GetTextBox("txtLayoutName");
            LayoutScaleDiv layoutScaleDiv = FindControl("divLayoutScale") as LayoutScaleDiv;
            ButtonA        btnDelete      = GetButton("btnDelete");
            ButtonA        btnApply       = GetButton("btnApply");
            ButtonA        btnCreate      = GetButton("btnCreate");
            ButtonA        btnSave        = GetButton("btnSave");

            txtLayoutName.Text       = layout.m_name;
            layoutScaleDiv.LayoutStr = layout.m_text;
            bool btnEnabled = (layout.m_layoutID != null && layout.m_layoutID.Length > 0);

            btnDelete.Enabled = btnEnabled;
            btnApply.Enabled  = btnEnabled;
            btnSave.Enabled   = btnEnabled;
        }
Beispiel #20
0
        /// <summary>
        /// 表格选中行改变方法
        /// </summary>
        public void OnGridSelectedRowsChanged()
        {
            String         layoutID         = "";
            List <GridRow> selectedRows     = m_gridLayouts.SelectedRows;
            int            selectedRowsSize = selectedRows.Count;

            if (selectedRowsSize > 0)
            {
                layoutID = selectedRows[0].GetCell(0).Text;
            }
            IndicatorLayout layout = new IndicatorLayout();

            m_indicatorLayoutService.GetLayoutByID(layoutID, ref layout);
            m_layout = layout;
            LoadLayout(m_layout);
            m_window.Invalidate();
        }
Beispiel #21
0
        /// <summary>
        /// 调用控件线程方法
        /// </summary>
        /// <param name="args">参数</param>
        public void OnInvoke(object args)
        {
            CMessage message = (CMessage)args;
            List <IndicatorLayout> layouts = new List <IndicatorLayout>();

            IndicatorLayoutService.GetLayouts(layouts, message.m_body, message.m_bodyLength);
            int layoutsSize = layouts.Count;

            switch (message.m_functionID)
            {
            case IndicatorLayoutService.FUNCTIONID_INDICATORLAYOUT_ADDLAYOUTS:
                AddLayoutsToGrid(layouts);
                break;

            case IndicatorLayoutService.FUNCTIONID_INDICATORLAYOUT_DELETELAYOUTS:
            {
                Dictionary <String, GridRow> ilRowsMap = GetIndicatorLayoutsRows();
                for (int i = 0; i < layoutsSize; i++)
                {
                    IndicatorLayout layout = layouts[i];
                    if (ilRowsMap.ContainsKey(layout.m_layoutID))
                    {
                        m_gridLayouts.RemoveRow(ilRowsMap[layout.m_layoutID]);
                    }
                }
                m_gridLayouts.Update();
                break;
            }

            case IndicatorLayoutService.FUNCTIONID_INDICATORLAYOUT_UPDATELAYOUTS:
            {
                Dictionary <String, GridRow> ilRowsMap = GetIndicatorLayoutsRows();
                for (int i = 0; i < layoutsSize; i++)
                {
                    IndicatorLayout layout = layouts[i];
                    if (ilRowsMap.ContainsKey(layout.m_layoutID))
                    {
                        ilRowsMap[layout.m_layoutID].GetCell(1).Text = layout.m_name;
                    }
                }
                break;
            }
            }
            m_window.Invalidate();
        }
Beispiel #22
0
        /// <summary>
        /// 加载数据
        /// </summary>
        /// <param name="state">状态</param>
        /// <returns>加载状态</returns>
        public static int LoadData(int state)
        {
            ChatData chatData = new ChatData();

            m_chatService.Enter(m_chatService.RequestID, chatData);
            Indicator indicator = new Indicator();

            indicator.m_userID = m_userID;
            m_indicatorService.GetIndicators(m_indicatorService.GetListRequestID, indicator);
            SecurityFilterTemplate template = new SecurityFilterTemplate();

            template.m_userID = m_userID;
            m_securityFilterService.GetTemplates(m_securityFilterService.GetListRequestID, template);
            UserSecurityVisitsCount visitsCount = new UserSecurityVisitsCount();

            visitsCount.m_userID = DataCenter.UserID;
            m_userSecurityService.GetVisitsCount(m_userSecurityService.GetListRequestID, visitsCount);
            UserSecurityCategory category = new UserSecurityCategory();

            category.m_userID = m_userID;
            m_userSecurityService.GetCategories(m_userSecurityService.GetListRequestID, category);
            IndicatorLayout indicatorLayout = new IndicatorLayout();

            indicatorLayout.m_userID = m_userID;
            m_indicatorLayoutService.GetLayouts(m_indicatorLayoutService.GetListRequestID, indicatorLayout);
            Macro macro = new Macro();

            macro.m_userID = m_userID;
            m_macroService.GetMacros(m_macroService.GetListRequestID, macro);
            UserSession userSession = new UserSession();

            userSession.m_userID = m_userID;
            m_userSessionService.GetSessions(m_userSessionService.GetListRequestID, userSession);
            if (state == 1)
            {
                m_securityService.LoadSecurities();
            }
            if (m_mainUI != null)
            {
                m_mainUI.LoadData();
            }
            return(0);
        }
Beispiel #23
0
        /// <summary>
        /// 更新布局
        /// </summary>
        /// <param name="message">消息</param>
        /// <returns>状态</returns>
        public int UpdateLayout(CMessage message)
        {
            List <IndicatorLayout> layouts = new List <IndicatorLayout>();

            GetLayouts(layouts, message.m_body, message.m_bodyLength);
            int layoutsSize = layouts.Count;
            List <IndicatorLayout> updateLayouts = new List <IndicatorLayout>();

            for (int i = 0; i < layoutsSize; i++)
            {
                IndicatorLayout receive = layouts[i];
                UpdateLayouts(receive);
                updateLayouts.Add(receive);
            }
            int ret = Send(message, updateLayouts, true);

            updateLayouts.Clear();
            layouts.Clear();
            return(ret);
        }
Beispiel #24
0
        /// <summary>
        /// 获取布局信息
        /// </summary>
        /// <param name="layouts">布局信息</param>
        /// <param name="userID">用户ID</param>
        /// <param name="layoutID">布局ID</param>
        public int GetLayouts(List <IndicatorLayout> layouts, int userID, String layoutID)
        {
            String sql = "";

            if (layoutID != null && layoutID.Length > 0)
            {
                sql = String.Format("SELECT * FROM INDICATORLAYOUT WHERE USERID = {0} AND LAYOUTID = '{1}'", userID, CStrA.GetDBString(layoutID));
            }
            else
            {
                if (userID > 0)
                {
                    sql = String.Format("SELECT * FROM INDICATORLAYOUT WHERE USERID = {0} ORDER BY ORDERNUM", userID);
                }
                else
                {
                    sql = "SELECT * FROM INDICATORLAYOUT ORDER BY ORDERNUM";
                }
            }
            SQLiteConnection conn = new SQLiteConnection(m_connectStr);
            SQLiteCommand    cmd  = conn.CreateCommand();

            cmd.CommandText = sql;
            conn.Open();
            SQLiteDataReader reader = cmd.ExecuteReader();

            while (reader.Read())
            {
                IndicatorLayout layout = new IndicatorLayout();
                layout.m_layoutID = reader.GetString(0);
                layout.m_userID   = reader.GetInt32(1);
                layout.m_name     = reader.GetString(2);
                layout.m_text     = reader.GetString(3);
                layout.m_type     = reader.GetInt32(4);
                layout.m_orderNum = reader.GetInt32(5);
                layouts.Add(layout);
            }
            reader.Close();
            conn.Close();
            return(1);
        }
Beispiel #25
0
        /// <summary>
        /// 发送消息
        /// </summary>
        /// <param name="functionID">方法ID</param>
        /// <param name="requestID">请求ID</param>
        /// <param name="layouts">布局集合</param>
        /// <returns>状态</returns>
        public int Send(int functionID, int requestID, List <IndicatorLayout> layouts)
        {
            Binary bw          = new Binary();
            int    layoutsSize = layouts.Count;

            bw.WriteInt(layoutsSize);
            for (int i = 0; i < layoutsSize; i++)
            {
                IndicatorLayout layout = layouts[i];
                bw.WriteString(layout.m_layoutID);
                bw.WriteInt(layout.m_userID);
                bw.WriteString(layout.m_name);
                bw.WriteString(layout.m_text);
                bw.WriteInt(layout.m_type);
                bw.WriteInt(layout.m_orderNum);
            }
            byte[] bytes = bw.GetBytes();
            int    ret   = Send(new CMessage(GroupID, ServiceID, functionID, SessionID, requestID, m_socketID, 0, CompressType, bytes.Length, bytes));

            bw.Close();
            return(ret);
        }
        private void addIndicatorViews()
        {
            PullMode    mode = Mode;
            FrameLayout refreshableViewWrapper = RefreshableViewWrapper;

            if (mode.showHeaderLoadingLayout() && null == mIndicatorIvTop)
            {
                // If the mode can pull down, and we don't have one set already
                mIndicatorIvTop = new IndicatorLayout(Context, PullMode.PULL_FROM_START);
                FrameLayout.LayoutParams @params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent);
                @params.RightMargin = Resources.GetDimensionPixelSize(Resource.Dimension.indicator_right_padding);
                @params.Gravity     = GravityFlags.Top | GravityFlags.Right;
                refreshableViewWrapper.AddView(mIndicatorIvTop, @params);
            }
            else if (!mode.showHeaderLoadingLayout() && null != mIndicatorIvTop)
            {
                // If we can't pull down, but have a View then remove it
                refreshableViewWrapper.RemoveView(mIndicatorIvTop);
                mIndicatorIvTop = null;
            }

            if (mode.showFooterLoadingLayout() && null == mIndicatorIvBottom)
            {
                // If the mode can pull down, and we don't have one set already
                mIndicatorIvBottom = new IndicatorLayout(Context, PullMode.PULL_FROM_END);
                FrameLayout.LayoutParams @params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent);
                @params.RightMargin = Resources.GetDimensionPixelSize(Resource.Dimension.indicator_right_padding);
                @params.Gravity     = GravityFlags.Bottom | GravityFlags.Right;
                refreshableViewWrapper.AddView(mIndicatorIvBottom, @params);
            }
            else if (!mode.showFooterLoadingLayout() && null != mIndicatorIvBottom)
            {
                // If we can't pull down, but have a View then remove it
                refreshableViewWrapper.RemoveView(mIndicatorIvBottom);
                mIndicatorIvBottom = null;
            }
        }
Beispiel #27
0
        /// <summary>
        /// 添加布局到表格控件中
        /// </summary>
        /// <param name="layouts">布局列表</param>
        private void AddLayoutsToGrid(List <IndicatorLayout> layouts)
        {
            m_gridLayouts.BeginUpdate();
            int layoutsSize = layouts.Count;

            for (int i = 0; i < layoutsSize; i++)
            {
                IndicatorLayout layout = layouts[i];
                GridRow         row    = new GridRow();
                row.Grid = m_gridLayouts;
                GridStringCell idCell = new GridStringCell();
                idCell.Grid   = m_gridLayouts;
                idCell.Column = m_gridLayouts.GetColumn(0);
                idCell.Text   = layout.m_layoutID;
                row.AddCell(0, idCell);
                GridStringCell textCell = new GridStringCell();
                textCell.Grid   = m_gridLayouts;
                textCell.Column = m_gridLayouts.GetColumn(1);
                textCell.Text   = layout.m_name;
                row.AddCell(1, textCell);
                m_gridLayouts.AddRow(row);
            }
            m_gridLayouts.EndUpdate();
        }
Beispiel #28
0
        /// <summary>
        /// 通过流获取布局信息
        /// </summary>
        /// <param name="layouts">指标信息</param>
        /// <param name="body">包体</param>
        /// <param name="bodyLength">包体长度</param>
        public static int GetLayouts(List <IndicatorLayout> layouts, byte[] body, int bodyLength)
        {
            Binary br = new Binary();

            br.Write(body, bodyLength);
            int size = br.ReadInt();

            if (size > 0)
            {
                for (int i = 0; i < size; i++)
                {
                    IndicatorLayout layout = new IndicatorLayout();
                    layout.m_layoutID = br.ReadString();
                    layout.m_userID   = br.ReadInt();
                    layout.m_name     = br.ReadString();
                    layout.m_text     = br.ReadString();
                    layout.m_type     = br.ReadInt();
                    layout.m_orderNum = br.ReadInt();
                    layouts.Add(layout);
                }
            }
            br.Close();
            return(1);
        }
Beispiel #29
0
        /// <summary>
        /// 接收消息方法
        /// </summary>
        /// <param name="message">消息</param>
        public override void OnReceive(CMessage message)
        {
            if (message.m_functionID != FUNCTIONID_INDICATORLAYOUT_GETLAYOUTS)
            {
                message.m_requestID = m_operatorRequestID;
            }
            List <IndicatorLayout> layouts = new List <IndicatorLayout>();

            GetLayouts(layouts, message.m_body, message.m_bodyLength);
            int layoutsSize = layouts.Count;

            switch (message.m_functionID)
            {
            case FUNCTIONID_INDICATORLAYOUT_GETLAYOUTS:
            {
                m_layouts = layouts;
                m_loaded  = true;
                break;
            }

            case FUNCTIONID_INDICATORLAYOUT_ADDLAYOUTS:
            {
                bool add = false;
                for (int i = 0; i < layoutsSize; i++)
                {
                    IndicatorLayout layout = null;
                    if (!GetLayoutByID(layouts[i].m_layoutID, ref layout))
                    {
                        m_layouts.Add(layouts[i]);
                        add = true;
                    }
                }
                if (!add)
                {
                    return;
                }
                break;
            }

            case FUNCTIONID_INDICATORLAYOUT_DELETELAYOUTS:
            {
                for (int i = 0; i < layoutsSize; i++)
                {
                    IndicatorLayout layout = null;
                    if (GetLayoutByID(layouts[i].m_layoutID, ref layout))
                    {
                        m_layouts.Remove(layout);
                    }
                }
                break;
            }

            case FUNCTIONID_INDICATORLAYOUT_UPDATELAYOUTS:
            {
                for (int i = 0; i < layoutsSize; i++)
                {
                    IndicatorLayout updateLayout   = layouts[i];
                    int             curLayoutsSize = m_layouts.Count;
                    for (int j = 0; j < curLayoutsSize; j++)
                    {
                        IndicatorLayout layout = m_layouts[j];
                        if (layout.m_layoutID == updateLayout.m_layoutID)
                        {
                            m_layouts[j] = updateLayout;
                            break;
                        }
                    }
                }
                break;
            }
            }
            base.OnReceive(message);
        }
Beispiel #30
0
        /// <summary>
        /// Initialize GoogleMaps
        /// </summary>
        private async void InitializeMap()
        {
            try
            {
                geocoder = new Xamarin.Forms.GoogleMaps.Geocoder();
                var positions = await geocoder.GetPositionsForAddressAsync("Belarus");

                if (positions.Any())
                {
                    var pos = positions.First();
                    map.MoveToRegion(MapSpan.FromCenterAndRadius(pos, Distance.FromKilometers(2)));
                    map.IsShowingUser = true;

                    if (mpVM.MapPins.Any() && isStart)
                    {
                        var indicator = new IndicatorLayout();
                        MainLayout.Children.Add(indicator);

                        int count = mpVM.MapPins.Count();
                        foreach (var mp in mpVM.MapPins)
                        {
                            count--;
                            Position pinPosition = new Position();

                            var pinPositions = await geocoder.GetPositionsForAddressAsync(mp.Address);

                            if (pinPositions != null && pinPositions.Any())
                            {
                                pinPosition = pinPositions.First();
                            }

                            await Task.Delay(1000); // workaround for #30 [Android]Map.Pins.Add doesn't work when page OnAppearing

                            var pin = new Pin
                            {
                                Address  = mp.Address,
                                Position = pinPosition,
                                Icon     = BitmapDescriptorFactory.FromView(new BindingPinView("")),
                                Label    = $"{mp.Name}, {mp.Description}, {mp.Raiting}"
                            };

                            map.Pins.Add(pin);

                            if (count == 0)
                            {
                                map.MoveToRegion(MapSpan.FromCenterAndRadius(pinPosition, Distance.FromKilometers(1)));
                            }
                        }

                        isStart = false;
                        MainLayout.Children.Remove(indicator);
                    }
                }
                else
                {
                    await this.DisplayAlert("Not found", "Geocoder returns no results", "Close");
                }
            }
            catch (Exception e)
            {
                await this.DisplayAlert("Not found", e.Message + " Check your internet", "Close");
            }
        }