public IDataItem createByForm(IConnection aConnection, IWin32Window aOwner)
        {
            Connection lConnection  = (Connection)aConnection;
                DataItem lItem          = new DataItem();
                bool lCreated           = false;

                using (var lSetupForm = new ItemSetupForm(lConnection, lItem))
                {
                    do
                    {
                        try
                        {
                            lSetupForm.ShowDialog(aOwner);
                            if (lSetupForm.DialogResult == DialogResult.OK)
                            {
                                lItem       = lConnection.addItem(lSetupForm.Topic, lSetupForm.Subscribe, lSetupForm.Publish, "");
                                lCreated    = true;
                            }
                            else
                            {
                                lItem = null;
                            }
                        }
                        catch (Exception lExc)
                        {
                            Log.Error("Error while user was creating new data item for MQQT broker '"
                                        + lConnection.mHost + ":" + lConnection.mPort + "'. " + lExc.Message, lExc.ToString());
                            MessageForm.showMessage(lExc.Message, aOwner);
                        }
                    }
                    while (lSetupForm.DialogResult == DialogResult.OK && lCreated == false);
                }

                return lItem;
        }
        private void ItemButton_Click(object sender, EventArgs e)
        {
            ItemSetupForm itemSetupForm = new ItemSetupForm();

            itemSetupForm.Show();
            this.Hide();
        }
        public void setupByForm(IDataItem aDataItem, IConnection aConnection, IWin32Window aOwner)
        {
            DataItem lItem          = (DataItem)aDataItem;
                Connection lConnection  = (Connection)aConnection;
                bool lModified          = false;

                using (var lSetupForm = new ItemSetupForm(lConnection, lItem))
                {
                    do
                    {
                        lSetupForm.ShowDialog(aOwner);
                        if (lSetupForm.DialogResult == DialogResult.OK)
                        {
                            try
                            {
                                lConnection.modifyItem(lItem, lSetupForm.Topic, lSetupForm.Subscribe, lSetupForm.Publish);
                                lModified = true;
                            }
                            catch (Exception lExc)
                            {
                                Log.Error("Error while user was configuring data item for MQQT broker '"
                                        + lConnection.mHost + ":" + lConnection.mPort + "'. " + lExc.Message, lExc.ToString());
                                MessageForm.showMessage(lExc.Message, aOwner);
                            }
                        }
                    }
                    while (lSetupForm.DialogResult == DialogResult.OK && lModified == false);
                }
        }