예제 #1
0
    public void RemoveLayerAt(int index)
    {
        #if UNITY_ANDROID
        if (Settings.Vibration)
        {
            Handheld.Vibrate();
        }
        #endif
        failAudio.Play();
        CameraShake.instance.Shake(.5f);

        perfectItteration = false;
        if (index < layers.Count)
        {
            LayerObject removeObject = layers[index];
            Destroy(removeObject.layer.gameObject);
            Destroy(removeObject.mask.gameObject);
            layers.Remove(removeObject);
        }
        SizeOfWorld = layers.Count;

        if (layers.Count == 0)
        {
            outliner.gameObject.SetActive(false);
        }
    }
예제 #2
0
        public new LayerObject GetDownLast()
        {
            global::System.IntPtr cPtr = C4dApiPINVOKE.LayerObject_GetDownLast(swigCPtr);
            LayerObject           ret  = (cPtr == global::System.IntPtr.Zero) ? null : new LayerObject(cPtr, false);

            return(ret);
        }
예제 #3
0
        public static LayerObject Alloc()
        {
            global::System.IntPtr cPtr = C4dApiPINVOKE.LayerObject_Alloc();
            LayerObject           ret  = (cPtr == global::System.IntPtr.Zero) ? null : new LayerObject(cPtr, false);

            return(ret);
        }
예제 #4
0
 internal void Apply()
 {
     if (this.Templates == null)
     {
         this.Templates = new Dictionary <IFeatureLayer, List <YTEditTemplateWrap> >();
     }
     for (int i = 0; i < this.checkedListBox1.Items.Count; i++)
     {
         bool        itemChecked = this.checkedListBox1.GetItemChecked(i);
         LayerObject obj2        = this.checkedListBox1.Items[i] as LayerObject;
         if (itemChecked)
         {
             if (!this.Templates.ContainsKey(obj2.Layer as IFeatureLayer))
             {
                 List <YTEditTemplate>     list  = YTEditTemplateFactory.Create(obj2.Layer as IFeatureLayer);
                 List <YTEditTemplateWrap> list2 = new List <YTEditTemplateWrap>();
                 foreach (YTEditTemplate template in list)
                 {
                     list2.Add(new YTEditTemplateWrap(template));
                 }
                 this.Templates.Add(obj2.Layer as IFeatureLayer, list2);
             }
         }
         else if (this.Templates.ContainsKey(obj2.Layer as IFeatureLayer))
         {
             this.Templates.Remove(obj2.Layer as IFeatureLayer);
         }
     }
 }
예제 #5
0
        public LayerObject GetLayerObject(BaseDocument doc)
        {
            global::System.IntPtr cPtr = C4dApiPINVOKE.BaseList2D_GetLayerObject(swigCPtr, BaseDocument.getCPtr(doc));
            LayerObject           ret  = (cPtr == global::System.IntPtr.Zero) ? null : new LayerObject(cPtr, false);

            return(ret);
        }
    public void AddLayerObject()
    {
        LayerObject newObject = Instantiate(layerPrefab);

        newObject.name = "Layer " + allLayers.Count;
        newObject.AssignBaseLayer(allLayers.Count);

        allLayers.Add(allLayers.Count, newObject);
    }
예제 #7
0
 /// <summary> Creates an xMap-1 map object. </summary>
 /// <param name="objectInfos">Set of object infos returned by xMap-1.</param>
 /// <param name="layerObject">XServer layer object.</param>
 public XMap1MapObject(ObjectInfos objectInfos, LayerObject layerObject) : base(
         (((long)layerObject.hiId << 32) + layerObject.loId).ToString(),
         objectInfos.name,
         new Point(layerObject.pixel.x, layerObject.pixel.y),
         new Point([email protected], [email protected]),
         () => new[] { new KeyValuePair <string, string>("description", GetDescription(layerObject)) }
         )
 {
     Source = layerObject;
 }
예제 #8
0
 private void button1_Click(object sender, EventArgs e)
 {
     for (int i = 0; i < this.checkedListBox1.Items.Count; i++)
     {
         LayerObject obj2 = this.checkedListBox1.Items[i] as LayerObject;
         this.checkedListBox1.SetItemChecked(i, obj2.Layer.Visible);
     }
     this.CanApply     = this.checkedListBox1.CheckedIndices.Count > 0;
     this.NexHasEnable = this.checkedListBox1.CheckedIndices.Count > 0;
 }
예제 #9
0
        public ElementAnimation GetAnimation(LayerObject layerObject)
        {
            ElementAnimation animation = new ElementAnimation();
            Vector2          position  = new Vector2(layerObject.DestinationRectangle.X, layerObject.DestinationRectangle.Y);

            animation.LoadContent(layerObject.AnimationSequence,
                                  layerObject.DestinationRectangle,
                                  layerObject.Width,
                                  layerObject.Height,
                                  layerObject.AnimationRandomness.Value);
            return(animation);
        }
예제 #10
0
 private void chkUsetSelectedLayer_CheckedChanged(object sender, EventArgs e)
 {
     if (this.chkUsetSelectedLayer.Checked)
     {
         for (int i = this.checkedListBoxLayer.Items.Count - 1; i >= 0; i--)
         {
             LayerObject obj2 = this.checkedListBoxLayer.Items[i] as LayerObject;
             if (!(obj2.Layer as IFeatureLayer).Selectable)
             {
                 this.checkedListBoxLayer.Items.RemoveAt(i);
             }
         }
     }
 }
예제 #11
0
 public void FlashObject()
 {
     try
     {
         LayerObject   selectedItem = this.cboLayer.SelectedItem as LayerObject;
         IFeatureLayer layer        = selectedItem.Layer as IFeatureLayer;
         if (layer != null)
         {
             Flash.FlashSelectedFeature(this.m_pActiveView.ScreenDisplay, layer);
         }
     }
     catch
     {
     }
 }
예제 #12
0
    public void CheckBeat(ColorType type)
    {
        if (layers.Count == 0 && !outliner.resetting && !outliner.gameObject.active)
        {
            particles.Play();
            ui.FirstMove();
            perfectItteration = true;
            failAudio.Play();
            NewItteration();
            return;
        }

        LayerObject closestObject = layers[0];
        float       distance      = Mathf.Infinity;
        int         index         = 0;
        int         closestIndex  = 0;

        foreach (LayerObject layer in layers)
        {
            if (Mathf.Abs(outliner.Scale - layer.layer.transform.localScale.x) < distance)
            {
                closestIndex  = index;
                closestObject = layer;
                distance      = Mathf.Abs(outliner.Scale - layer.layer.transform.localScale.x);
            }
            index++;
        }


        float precentage = distance / (1f / (float)layers.Count); // between 0 and 50

        if (precentage > precentageMarge || closestObject.inPulse || type != closestObject.layer.Type)
        {
            RemoveLayerAt(closestIndex);
        }
        else
        {
            if (layers.IndexOf(closestObject) != layers.Count - 1 || !perfectItteration)
            {
                closestObject.layer.Dance();
            }
            closestObject.inPulse = true;
        }
        outliner.Pulse();
    }
예제 #13
0
    LayerObject CreateNewLayerObject(int layer)
    {
        LayerObject obj = new LayerObject();

        GameObject o = new GameObject("Layer " + layer);

        o.layer = gameObject.layer;
        var transform = o.GetComponent <Transform>();

        obj.meshFilter          = o.AddComponent <MeshFilter>();
        obj.meshRenderer        = o.AddComponent <MeshRenderer>();
        obj.meshFilter.mesh     = new Mesh();
        transform.parent        = this.transform;
        transform.localPosition = new Vector3(0, layer * m_scaleY * Chunk.chunkSize, 0);
        transform.localRotation = Quaternion.identity;
        transform.localScale    = new Vector3(m_scaleX, m_scaleY, m_scaleZ);

        return(obj);
    }
예제 #14
0
    void UpdateLayerObject(LayerObject obj, Material material, int index, MeshParams <WorldVertexDefinition> meshParams)
    {
        var data = meshParams.GetMesh(material, index);

        obj.meshRenderer.material = material;

        var mesh = obj.meshFilter.mesh;

        MeshEx.SetWorldMeshParams(mesh, data.verticesSize, data.indexesSize);

        mesh.SetVertexBufferData(data.vertices, 0, 0, data.verticesSize);
        mesh.SetIndexBufferData(data.indexes, 0, 0, data.indexesSize);

        mesh.subMeshCount = 1;
        mesh.SetSubMesh(0, new UnityEngine.Rendering.SubMeshDescriptor(0, data.indexesSize, MeshTopology.Triangles));

        //full chunk layer
        mesh.bounds = new Bounds(new Vector3(Chunk.chunkSize, Chunk.chunkSize, Chunk.chunkSize) / 2, new Vector3(Chunk.chunkSize, Chunk.chunkSize, Chunk.chunkSize));
    }
예제 #15
0
 public void ZoomToSelectObject()
 {
     try
     {
         LayerObject   selectedItem = this.cboLayer.SelectedItem as LayerObject;
         IFeatureLayer layer        = selectedItem.Layer as IFeatureLayer;
         if (layer != null)
         {
             if (this.m_pActiveView is IScene)
             {
                 CommonHelper.Zoom2SelectedFeature(this.m_pActiveView as IScene);
             }
             else
             {
                 CommonHelper.Zoom2SelectedFeature(this.m_pActiveView);
             }
         }
     }
     catch
     {
     }
 }
예제 #16
0
        private bool UpdateFieldValue(IField pField, object str)
        {
            if (this.cboLayer.SelectedIndex == -1)
            {
                return(false);
            }
            LayerObject   selectedItem = this.cboLayer.SelectedItem as LayerObject;
            IFeatureLayer layer        = selectedItem.Layer as IFeatureLayer;

            if (layer == null)
            {
                return(false);
            }
            IWorkspaceEdit editWorkspace = Yutai.ArcGIS.Common.Editor.Editor.EditWorkspace;
            bool           flag          = false;

            try
            {
                ICursor cursor;
                editWorkspace.StartEditOperation();
                int index = layer.FeatureClass.Fields.FindField(pField.Name);
                (layer as IFeatureSelection).SelectionSet.Search(null, false, out cursor);
                for (IRow row = cursor.NextRow(); row != null; row = cursor.NextRow())
                {
                    row.set_Value(index, str);
                    row.Store();
                }
                ComReleaser.ReleaseCOMObject(cursor);
                editWorkspace.StopEditOperation();
                flag = true;
            }
            catch (Exception exception)
            {
                MessageBox.Show("输入数据格式错误");
                CErrorLog.writeErrorLog(null, exception, "");
            }
            return(flag);
        }
예제 #17
0
 private void UpdateGrid()
 {
     if (this.cboLayer.SelectedIndex != -1)
     {
         LayerObject   selectedItem = this.cboLayer.SelectedItem as LayerObject;
         IFeatureLayer layer        = selectedItem.Layer as IFeatureLayer;
         if (layer != null)
         {
             IFields   fields       = layer.FeatureClass.Fields;
             ISubtypes featureClass = layer.FeatureClass as ISubtypes;
             for (int i = 0; i < fields.FieldCount; i++)
             {
                 IField field = fields.get_Field(i);
                 if (((((field.Type != esriFieldType.esriFieldTypeGeometry) &&
                        (field.Type != esriFieldType.esriFieldTypeOID)) &&
                       (field.Type != esriFieldType.esriFieldTypeRaster)) && field.Editable) &&
                     !(featureClass.SubtypeFieldName == field.Name))
                 {
                 }
             }
         }
     }
 }
예제 #18
0
    public void AddLayerAt(int index = -1)
    {
        Layer      newLayer = GameObject.Instantiate(layerPrefab, layerParent).GetComponent <Layer>();
        SpriteMask newMask  = GameObject.Instantiate(maskPrefab, maskParent).GetComponent <SpriteMask>();

        newLayer.Setup();
        LayerObject newPiece = new LayerObject()
        {
            layer = newLayer,
            mask  = newMask
        };

        if (layers.Count == 0 || index >= layers.Count || index <= 0)
        {
            layers.Add(newPiece);
        }
        else
        {
            layers.Insert(index, newPiece);
            newPiece.setSize(newPiece.layer.transform, layers[index - 1].layer.transform.localScale.x);
            newPiece.setSize(newPiece.mask.transform, layers[index - 1].mask.transform.localScale.x);
        }
        SizeOfWorld = layers.Count;
    }
예제 #19
0
    //private List<GameObject> objects

    public void GenerateLayer(RoomData room)
    {
        // Destroy all objects in here...
        foreach (KeyValuePair <string, LayerObject> item in layerObjects)
        {
            item.Value.destroy();
        }
        layerObjects = new Dictionary <string, LayerObject>();

        foreach (ItemData item in Items)
        {
            // Ok this generates tiles.. f**k them
            if (
                layerType == Constants.LAYER_TYPES.BACKGROUND_1 ||
                layerType == Constants.LAYER_TYPES.BACKGROUND_2 ||
                layerType == Constants.LAYER_TYPES.FOREGROUND_1 ||
                layerType == Constants.LAYER_TYPES.FOREGROUND_2
                )
            {
                if (layerObjects.ContainsKey(item.SpriteSheet))
                {
                    LayerObject mo = layerObjects[item.SpriteSheet];
                    mo.addItem(item);
                }
                else
                {
                    GameObject mogobj = new GameObject();
                    mogobj.transform.parent = room.getRoomObject().transform;
                    mogobj.name             = layerType + "_" + item.SpriteSheet;
                    MaterialObject mo = (MaterialObject)mogobj.AddComponent(typeof(MaterialObject));
                    mo.spriteSheetName = item.SpriteSheet;
                    mo.spriteSheetPath = item.SheetPath;
                    mo.posx            = room.PositionX;
                    mo.posy            = room.PositionY;
                    mo.posz            = Constants.LayerNameToZIndex(this.layerType);
                    mo.height          = room.Height;
                    mo.width           = room.Width;
                    mo.gameObject.SetActive(this.active);
                    mo.addItem(item);

                    layerObjects.Add(item.SpriteSheet, mo);
                }
                // Colliders work differently...in that, we will have a new object for every collider...
            }
            else if (layerType == Constants.LAYER_TYPES.COLLIDERS)
            {
                GameObject colObj = new GameObject();
                colObj.transform.position = new Vector3(item.PositionX, item.PositionY, Constants.LayerNameToZIndex(this.layerType));
                colObj.transform.parent   = room.getRoomObject().transform;

                float height = 32 * item.ScaleY;
                float width  = 32 * item.ScaleX;

                float offset = 0;



                colObj.layer = Constants.COLLIDER_BOX_LAYER;

                if (item.Rotation != 0)
                {
                    colObj.tag = Constants.TAG_COLLIDER_STAIR;

                    Vector3 bottomLeft = new Vector3(colObj.transform.position.x, colObj.transform.position.y + 16, 0);
                    Vector3 topRight   = new Vector3(colObj.transform.position.x + width, colObj.transform.position.y + height + 16, 0);
                    offset = Vector3.Distance(bottomLeft, topRight);

                    if (height > width)
                    {
                        colObj.transform.localScale = new Vector3(width, offset, Constants.ColliderZSize);
                    }
                    else
                    {
                        colObj.transform.localScale = new Vector3(offset, height, Constants.ColliderZSize);
                    }
                }
                else
                {
                    colObj.tag = Constants.TAG_COLLIDER_BOX;

                    colObj.transform.localScale = new Vector3(width, height, Constants.ColliderZSize);
                }

                colObj.name = "Collider_" + item.PositionX + "_" + item.PositionY;
                BoxCollider bc = (BoxCollider)colObj.AddComponent(typeof(BoxCollider));
                bc.isTrigger = false;
                bc.center    = new Vector3(.5f, .5f, 1.5f);
                Sprite so = (Sprite)colObj.AddComponent(typeof(Sprite));
                so.auto_resize = false;
                so.setSpriteSheetName(item.SpriteSheet);
                so.setSpriteSheetPath(item.SheetPath);
                so.setRotation(item.Rotation);
                so.setScaleX(item.ScaleX);
                so.setScaleY(item.ScaleY);
                so.setScaleZ(Constants.ColliderZSize);
                so.setTargetFrame(item.TargetFrame);

                // new sprite, we need to set all of the pertinant values....
                layerObjects.Add(colObj.name, so);
            }
        }

        //Colliders are more fun...
        //if(){

        //}

        //if(this.layerType == Constants.LAYER_TYPES.BACKGROUND_1){
        //	Debug.Log("Generate Layer: Count: " + thisLayerMaterialObjects.Count);
        //}
    }
예제 #20
0
 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(LayerObject obj)
 {
     return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr);
 }
예제 #21
0
 private void cboLayer_SelectedIndexChanged(object sender, EventArgs e)
 {
     this.m_pVertXtraGrid.Clear();
     if (this.cboLayer.SelectedIndex != -1)
     {
         LayerObject   selectedItem = this.cboLayer.SelectedItem as LayerObject;
         IFeatureLayer pLayer       = selectedItem.Layer as IFeatureLayer;
         this.m_pFeatLayer = pLayer;
         if (pLayer != null)
         {
             ICursor cursor;
             (pLayer as IFeatureSelection).SelectionSet.Search(null, false, out cursor);
             IList <IRow> pLists = new List <IRow>();
             for (IRow row = cursor.NextRow(); row != null; row = cursor.NextRow())
             {
                 pLists.Add(row);
             }
             ComReleaser.ReleaseCOMObject(cursor);
             IFields   fields       = pLayer.FeatureClass.Fields;
             string[]  strArray     = new string[2];
             ISubtypes featureClass = pLayer.FeatureClass as ISubtypes;
             IDomain   domain       = null;
             for (int i = 0; i < fields.FieldCount; i++)
             {
                 IField pField = fields.get_Field(i);
                 if (this.CheckFieldIsVisible(pLayer, pField))
                 {
                     strArray[0] = pField.AliasName;
                     if (pField.Type == esriFieldType.esriFieldTypeGeometry)
                     {
                         strArray[1] = this.GetShapeString(pField);
                         this.m_pVertXtraGrid.AddTextEdit(strArray[0], strArray[1], true);
                     }
                     else if (pField.Type == esriFieldType.esriFieldTypeBlob)
                     {
                         strArray[1] = "<二进制数据>";
                         this.m_pVertXtraGrid.AddTextEdit(strArray[0], strArray[1], true);
                     }
                     else if ((pField.Type != esriFieldType.esriFieldTypeOID) && pField.Editable)
                     {
                         int               num3;
                         double            minValue;
                         double            maxValue;
                         ICodedValueDomain domain2 = null;
                         IList             list2   = new ArrayList();
                         if ((featureClass != null) && featureClass.HasSubtype)
                         {
                             if (featureClass.SubtypeFieldName == pField.Name)
                             {
                                 int num2;
                                 if (this.CheckValueIsEqual(pLists, i))
                                 {
                                     object obj4 = pLists[0].get_Value(i);
                                     if (obj4 is DBNull)
                                     {
                                         strArray[1] = "<空>";
                                     }
                                     else
                                     {
                                         try
                                         {
                                             strArray[1] =
                                                 featureClass.get_SubtypeName(
                                                     (pLists[0] as IRowSubtypes).SubtypeCode);
                                         }
                                         catch
                                         {
                                             strArray[1] = obj4.ToString();
                                         }
                                     }
                                 }
                                 else
                                 {
                                     strArray[1] = "<空>";
                                 }
                                 IEnumSubtype subtypes = featureClass.Subtypes;
                                 subtypes.Reset();
                                 for (string str = subtypes.Next(out num2);
                                      str != null;
                                      str = subtypes.Next(out num2))
                                 {
                                     list2.Add(str);
                                 }
                                 this.m_pVertXtraGrid.AddComBoBox(strArray[0], strArray[1], list2,
                                                                  !pField.Editable);
                             }
                             else
                             {
                                 domain = featureClass.get_Domain((pLists[0] as IRowSubtypes).SubtypeCode,
                                                                  pField.Name);
                                 if (domain is ICodedValueDomain)
                                 {
                                     domain2 = domain as ICodedValueDomain;
                                     if (pField.IsNullable)
                                     {
                                         list2.Add("<空>");
                                     }
                                     if (this.CheckValueIsEqual(pLists, i))
                                     {
                                         strArray[1] = pLists[0].get_Value(i).ToString();
                                     }
                                     else
                                     {
                                         strArray[1] = "<空>";
                                     }
                                     num3 = 0;
                                     while (num3 < domain2.CodeCount)
                                     {
                                         list2.Add(domain2.get_Name(num3));
                                         if (strArray[1] == domain2.get_Value(num3).ToString())
                                         {
                                             strArray[1] = domain2.get_Name(num3);
                                         }
                                         num3++;
                                     }
                                     this.m_pVertXtraGrid.AddComBoBox(strArray[0], strArray[1], list2,
                                                                      !pField.Editable);
                                 }
                                 else
                                 {
                                     if (this.CheckValueIsEqual(pLists, i))
                                     {
                                         strArray[1] = pLists[0].get_Value(i).ToString();
                                     }
                                     else
                                     {
                                         strArray[1] = "<空>";
                                     }
                                     if ((((pField.Type == esriFieldType.esriFieldTypeSmallInteger) ||
                                           (pField.Type == esriFieldType.esriFieldTypeSingle)) ||
                                          (pField.Type == esriFieldType.esriFieldTypeDouble)) ||
                                         (pField.Type == esriFieldType.esriFieldTypeInteger))
                                     {
                                         minValue = 0.0;
                                         maxValue = 0.0;
                                         if (domain is IRangeDomain)
                                         {
                                             minValue = (double)(domain as IRangeDomain).MinValue;
                                             maxValue = (double)(domain as IRangeDomain).MaxValue;
                                         }
                                         if (pField.Editable)
                                         {
                                             this.m_pVertXtraGrid.AddSpinEdit(strArray[0], strArray[1], false,
                                                                              minValue, maxValue);
                                         }
                                         else
                                         {
                                             this.m_pVertXtraGrid.AddTextEdit(strArray[0], strArray[1], true);
                                         }
                                     }
                                     else if (pField.Type == esriFieldType.esriFieldTypeDate)
                                     {
                                         this.m_pVertXtraGrid.AddDateEdit(strArray[0], strArray[1],
                                                                          !pField.Editable);
                                     }
                                     else
                                     {
                                         if (this.CheckValueIsEqual(pLists, i))
                                         {
                                             strArray[1] = pLists[0].get_Value(i).ToString();
                                         }
                                         else
                                         {
                                             strArray[1] = "<空>";
                                         }
                                         this.m_pVertXtraGrid.AddTextEdit(strArray[0], strArray[1],
                                                                          !pField.Editable);
                                     }
                                 }
                             }
                         }
                         else
                         {
                             domain = pField.Domain;
                             if (domain != null)
                             {
                                 if (domain is ICodedValueDomain)
                                 {
                                     domain2 = domain as ICodedValueDomain;
                                     if (pField.IsNullable)
                                     {
                                         list2.Add("<空>");
                                     }
                                     if (this.CheckValueIsEqual(pLists, i))
                                     {
                                         strArray[1] = pLists[0].get_Value(i).ToString();
                                     }
                                     else
                                     {
                                         strArray[1] = "<空>";
                                     }
                                     num3 = 0;
                                     while (num3 < domain2.CodeCount)
                                     {
                                         list2.Add(domain2.get_Name(num3));
                                         if (strArray[1] == domain2.get_Value(num3).ToString())
                                         {
                                             strArray[1] = domain2.get_Name(num3);
                                         }
                                         num3++;
                                     }
                                     this.m_pVertXtraGrid.AddComBoBox(strArray[0], strArray[1], list2,
                                                                      !pField.Editable);
                                 }
                                 else
                                 {
                                     if (this.CheckValueIsEqual(pLists, i))
                                     {
                                         strArray[1] = pLists[0].get_Value(i).ToString();
                                     }
                                     else
                                     {
                                         strArray[1] = "<空>";
                                     }
                                     if ((((pField.Type == esriFieldType.esriFieldTypeSmallInteger) ||
                                           (pField.Type == esriFieldType.esriFieldTypeSingle)) ||
                                          (pField.Type == esriFieldType.esriFieldTypeDouble)) ||
                                         (pField.Type == esriFieldType.esriFieldTypeInteger))
                                     {
                                         minValue = 0.0;
                                         maxValue = 0.0;
                                         if (domain is IRangeDomain)
                                         {
                                             minValue = (double)(domain as IRangeDomain).MinValue;
                                             maxValue = (double)(domain as IRangeDomain).MaxValue;
                                         }
                                         if (pField.Editable)
                                         {
                                             this.m_pVertXtraGrid.AddSpinEdit(strArray[0], strArray[1], false,
                                                                              minValue, maxValue);
                                         }
                                         else
                                         {
                                             this.m_pVertXtraGrid.AddTextEdit(strArray[0], strArray[1], true);
                                         }
                                     }
                                     else if (pField.Type == esriFieldType.esriFieldTypeDate)
                                     {
                                         this.m_pVertXtraGrid.AddDateEdit(strArray[0], strArray[1],
                                                                          !pField.Editable);
                                     }
                                     else
                                     {
                                         this.m_pVertXtraGrid.AddTextEdit(strArray[0], strArray[1],
                                                                          !pField.Editable);
                                     }
                                 }
                             }
                             else
                             {
                                 if (this.CheckValueIsEqual(pLists, i))
                                 {
                                     strArray[1] = pLists[0].get_Value(i).ToString();
                                 }
                                 else
                                 {
                                     strArray[1] = "<空>";
                                 }
                                 string name = (pLayer.FeatureClass as IDataset).Name;
                                 NameValueCollection codeDomain = CodeDomainManage.GetCodeDomain(pField.Name,
                                                                                                 name);
                                 if (codeDomain.Count > 0)
                                 {
                                     if (pField.IsNullable)
                                     {
                                         list2.Add("<空>");
                                     }
                                     for (num3 = 0; num3 < codeDomain.Count; num3++)
                                     {
                                         string str3 = codeDomain.Keys[num3];
                                         list2.Add(str3);
                                         if (strArray[1] == codeDomain[str3])
                                         {
                                             strArray[1] = str3;
                                         }
                                     }
                                     this.m_pVertXtraGrid.AddComBoBox(strArray[0], strArray[1], list2,
                                                                      !pField.Editable);
                                 }
                                 else if ((((pField.Type == esriFieldType.esriFieldTypeSmallInteger) ||
                                            (pField.Type == esriFieldType.esriFieldTypeSingle)) ||
                                           (pField.Type == esriFieldType.esriFieldTypeDouble)) ||
                                          (pField.Type == esriFieldType.esriFieldTypeInteger))
                                 {
                                     if (pField.Editable)
                                     {
                                         this.m_pVertXtraGrid.AddSpinEdit(strArray[0], strArray[1], false, 0.0,
                                                                          0.0);
                                     }
                                     else
                                     {
                                         this.m_pVertXtraGrid.AddTextEdit(strArray[0], strArray[1], true);
                                     }
                                 }
                                 else if (pField.Type == esriFieldType.esriFieldTypeDate)
                                 {
                                     this.m_pVertXtraGrid.AddDateEdit(strArray[0], strArray[1], !pField.Editable);
                                 }
                                 else
                                 {
                                     this.m_pVertXtraGrid.AddTextEdit(strArray[0], strArray[1], !pField.Editable);
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
 }
예제 #22
0
 private void gridView1_CellValueChanged(object sender, CellValueChangedEventArgs e)
 {
     if (this.m_CanDo)
     {
         if (this.m_pFeatLayer == null)
         {
             LayerObject   selectedItem = this.cboLayer.SelectedItem as LayerObject;
             IFeatureLayer layer        = selectedItem.Layer as IFeatureLayer;
             this.m_pFeatLayer = layer;
         }
         if (this.m_pFeatLayer != null)
         {
             object         obj3;
             ISubtypes      featureClass = this.m_pFeatLayer.FeatureClass as ISubtypes;
             GridEditorItem row          = this.gridView1.GetRow(e.RowHandle) as GridEditorItem;
             int            index        = this.m_pFeatLayer.FeatureClass.Fields.FindFieldByAliasName(row.Name);
             IField         pField       = this.m_pFeatLayer.FeatureClass.Fields.get_Field(index);
             if ((featureClass != null) && featureClass.HasSubtype)
             {
                 if (featureClass.SubtypeFieldName == pField.Name)
                 {
                     IEnumSubtype subtypes = featureClass.Subtypes;
                     subtypes.Reset();
                     int subtypeCode = 0;
                     for (string str = subtypes.Next(out subtypeCode);
                          str != null;
                          str = subtypes.Next(out subtypeCode))
                     {
                         if (e.Value.ToString() == str)
                         {
                             this.UpdateFieldValue(pField, subtypeCode);
                             break;
                         }
                     }
                 }
                 else if (e.Value.ToString() == "<空>")
                 {
                     obj3 = DBNull.Value;
                     this.UpdateFieldValue(pField, obj3);
                 }
                 else
                 {
                     this.UpdateFieldValue(pField, e.Value);
                 }
             }
             else if (e.Value.ToString() == "<空>")
             {
                 obj3 = DBNull.Value;
                 this.UpdateFieldValue(pField, obj3);
             }
             else
             {
                 int    num3;
                 string name = (this.m_pFeatLayer.FeatureClass as IDataset).Name;
                 NameValueCollection codeDomain = CodeDomainManage.GetCodeDomain(pField.Name, name);
                 if (codeDomain.Count > 0)
                 {
                     for (num3 = 0; num3 < codeDomain.Count; num3++)
                     {
                         string str3 = codeDomain.Keys[num3];
                         if (str3 == e.Value.ToString())
                         {
                             this.UpdateFieldValue(pField, codeDomain[str3]);
                             break;
                         }
                     }
                 }
                 else
                 {
                     IDomain domain = pField.Domain;
                     if (domain is ICodedValueDomain)
                     {
                         ICodedValueDomain domain2 = domain as ICodedValueDomain;
                         for (num3 = 0; num3 < domain2.CodeCount; num3++)
                         {
                             if (domain2.get_Name(num3) == e.Value.ToString())
                             {
                                 this.UpdateFieldValue(pField, domain2.get_Value(num3));
                                 break;
                             }
                         }
                     }
                     else if (this.UpdateFieldValue(pField, e.Value))
                     {
                         this.m_CanDo = false;
                         this.m_CanDo = true;
                     }
                 }
             }
         }
     }
 }
예제 #23
0
        private static string GetDescription(LayerObject layerObject)
        {
            string descr = layerObject?.descr;

            if (string.IsNullOrEmpty(descr))
            {
                return(string.Empty);
            }

            // match Values for xPOIAcc
            if (descr.Contains('#'))
            {
                var poidesc = descr.Split('#')[1];
                poidesc = poidesc.Trim('|').Replace("|", "\n");

                var match = Regex.Match(poidesc, @"^(?:[^\|=:]+):([^\|=:]*)$");
                if (match.Success)
                {
                    poidesc = match.Groups[1].Value;
                }

                return(poidesc);
            }

            // match KVP-style description string: a=b|b=c|... for Feature Layer
            var m = Regex.Match(descr, @"^(?!\|)(?:\|?([^\|=]+)=([^\|]*))+$");

            // no match - just return descr
            if (!m.Success)
            {
                return(descr);
            }

            var result  = new StringBuilder(4);
            var message = string.Empty;

            for (var i = 0; i < m.Groups[1].Captures.Count; ++i)
            {
                var key   = m.Groups[1].Captures[i].Value.Trim().ToUpper();
                var value = m.Groups[2].Captures[i].Value.Trim();

                switch (key)
                {
                // Traffic incidents
                case "ABSOLUTESPEED":
                    var s = Convert.ToInt16(value);
                    if (s > 0)
                    {
                        result.AppendWithSeparator(string.Format(MapLocalizer.GetString(MapStringId.ToolTipTrafficIncidentsAbsoluteSpeed), s), Environment.NewLine);
                    }
                    break;

                case "MESSAGE": message = value; break;

                case "LENGTH": result.AppendWithSeparator(string.Format(MapLocalizer.GetString(MapStringId.ToolTipTrafficIncidentsLength), Convert.ToDouble(value) / 1000), Environment.NewLine); break;

                case "DELAY": result.AppendWithSeparator(string.Format(MapLocalizer.GetString(MapStringId.ToolTipTrafficIncidentsDelay), Math.Round(Convert.ToDouble(value) / 60)), Environment.NewLine); break;

                // Truck attributes
                case "TOTALPERMITTEDWEIGHT": result.AppendWithSeparator(string.Format(MapLocalizer.GetString(MapStringId.ToolTipTruckAttributesTotalPermittedWeight), Convert.ToDouble(value)), Environment.NewLine); break;

                case "LOADTYPE":
                    switch (value)
                    {
                    case "0": value = MapLocalizer.GetString(MapStringId.ToolTipTruckAttributesLoadTypePassenger); break;

                    case "1": value = MapLocalizer.GetString(MapStringId.ToolTipTruckAttributesLoadTypeGoods); break;

                    default: value = MapLocalizer.GetString(MapStringId.ToolTipTruckAttributesLoadTypeMixed); break;
                    }
                    result.AppendWithSeparator(string.Format(MapLocalizer.GetString(MapStringId.ToolTipTruckAttributesLoadType), value), Environment.NewLine);
                    break;

                case "MAXHEIGHT": result.AppendWithSeparator(string.Format(MapLocalizer.GetString(MapStringId.ToolTipTruckAttributesMaxHeight), Convert.ToDouble(value) / 100), Environment.NewLine); break;

                case "MAXWEIGHT": result.AppendWithSeparator(string.Format(MapLocalizer.GetString(MapStringId.ToolTipTruckAttributesMaxWeight), Convert.ToDouble(value)), Environment.NewLine); break;

                case "MAXWIDTH": result.AppendWithSeparator(string.Format(MapLocalizer.GetString(MapStringId.ToolTipTruckAttributesMaxWidth), Convert.ToDouble(value) / 100), Environment.NewLine); break;

                case "MAXLENGTH": result.AppendWithSeparator(string.Format(MapLocalizer.GetString(MapStringId.ToolTipTruckAttributesMaxLength), Convert.ToDouble(value) / 100), Environment.NewLine); break;

                case "MAXAXLELOAD": result.AppendWithSeparator(string.Format(MapLocalizer.GetString(MapStringId.ToolTipTruckAttributesMaxAxleLoad), Convert.ToDouble(value)), Environment.NewLine); break;

                case "HAZARDOUSTOWATERS": result.AppendWithSeparator(MapLocalizer.GetString(MapStringId.ToolTipTruckAttributesHazardousToWaters), Environment.NewLine); break;

                case "HAZARDOUSGOODS": result.AppendWithSeparator(MapLocalizer.GetString(MapStringId.ToolTipTruckAttributesHazardousGoods), Environment.NewLine); break;

                case "COMBUSTIBLES": result.AppendWithSeparator(MapLocalizer.GetString(MapStringId.ToolTipTruckAttributesCombustibles), Environment.NewLine); break;

                case "FREEFORDELIVERY": result.AppendWithSeparator(MapLocalizer.GetString(MapStringId.ToolTipTruckAttributesFreeForDelivery), Environment.NewLine); break;

                case "TUNNELRESTRICTION": result.AppendWithSeparator(string.Format(MapLocalizer.GetString(MapStringId.ToolTipTruckAttributesTunnelRestriction), value), Environment.NewLine); break;
                }
            }

            if (!string.IsNullOrEmpty(message))
            {
                result.AppendWithSeparator(FormatToolTip(MapLocalizer.GetString(MapStringId.ToolTipTrafficIncidentsMessage), message), Environment.NewLine);
            }

            return(result.ToString());
        }
예제 #24
0
        public bool SetLayerObject(LayerObject layer)
        {
            bool ret = C4dApiPINVOKE.BaseList2D_SetLayerObject(swigCPtr, LayerObject.getCPtr(layer));

            return(ret);
        }