Example #1
0
 public static ActiveSub activate(AMPSAddin.SubscriptionDefinition d, Client client, string messageType, Excel.Workbook workbook)
 {
     if (!_actives.ContainsKey(d))
     {
         _actives[d] = new ActiveSub(client, messageType, d, workbook);
     }
     return(_actives[d]);
 }
Example #2
0
 public static ActiveSub find(AMPSAddin.SubscriptionDefinition d)
 {
     if (_actives.ContainsKey(d))
     {
         return(_actives[d]);
     }
     else
     {
         return(null);
     }
 }
Example #3
0
        private ActiveSub(Client c, string messageType, AMPSExcel.AMPSAddin.SubscriptionDefinition d, Excel.Workbook workbook)
        {
            _def         = d;
            _client      = c;
            _messageType = MessageTypeFactory.forName(messageType);
            string[] rangeParts = d.WorksheetRange.Split('!');
            _worksheet        = workbook.Worksheets[rangeParts[0]];
            Excel.Range where = _worksheet.Range[rangeParts[1]];
            _row = where.Row;
            _col = where.Column;
            _columns["SOWKey"] = where.Column;
            _workbook          = workbook;
            where.Value        = "AMPS Subscription: " + d.Name;
            _empty.Clear();
            int count = _worksheet.Rows.Count;

            for (int i = _row; i < count; ++i)
            {
                var cell = _worksheet.Cells[i, _col];
                if (!string.IsNullOrEmpty(cell.Text))
                {
                    string text = cell.Text;
                    if (text == "(deleted)")
                    {
                        _empty.Enqueue(i);
                    }
                    else
                    {
                        _rows[text.Trim('|')] = i;
                    }
                }
                else
                {
                    _lastrow = i;
                    break;
                }
            }
            _cmdId = c.sowAndDeltaSubscribe(x => ReceivedMessage(x), d.Topic, d.Filter, 100, true, true, 1000);
            Globals.AMPSAddin.Application.WorkbookBeforeClose += new Excel.AppEvents_WorkbookBeforeCloseEventHandler(Application_WorkbookBeforeClose);
            workbook.BeforeClose += new Excel.WorkbookEvents_BeforeCloseEventHandler(workbook_BeforeClose);
        }
Example #4
0
        private void button1_Click(object sender, RibbonControlEventArgs e)
        {
            //var topicStore = Globals.AMPSAddin.GetTopicStoreForActiveWorkbook();
            Excel.Range activeCell = Globals.AMPSAddin.Application.ActiveWindow.ActiveCell;

            try
            {
                Excel.Workbook activeWorkbook = Globals.AMPSAddin.Application.ActiveWorkbook;
                var            form           = new SubscriptionForm(activeWorkbook);
                form.WorksheetRange = Globals.AMPSAddin.Application.ActiveWindow.ActiveSheet.Name + "!" + activeCell.Address;

                if (form.ShowDialog() == DialogResult.OK)
                {
                    AMPSAddin.ServerDefinition serverDef = Globals.AMPSAddin.getWorkbookInfo(activeWorkbook).Servers[form.ServerName];
                    Client c = new Client(Guid.NewGuid().ToString());
                    c.connect(serverDef.URL);
                    c.logon();
                    string[] worksheetNames = form.WorksheetRange.Split('!');
                    AMPSAddin.SubscriptionDefinition def = new AMPSAddin.SubscriptionDefinition
                    {
                        Name           = form.SubscriptionName,
                        ServerName     = form.ServerName,
                        Topic          = form.Topic,
                        WorksheetRange = form.WorksheetRange,
                        Filter         = form.Filter
                    };

                    Globals.AMPSAddin.getWorkbookInfo(activeWorkbook).createOrUpdate(def);

                    ActiveSub.activate(def, c, serverDef.MessageType, Globals.AMPSAddin.Application.ActiveWorkbook);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Example #5
0
        private void button1_Click(object sender, RibbonControlEventArgs e)
        {
            //var topicStore = Globals.AMPSAddin.GetTopicStoreForActiveWorkbook();
            Excel.Range activeCell = Globals.AMPSAddin.Application.ActiveWindow.ActiveCell;

            try
            {
                Excel.Workbook activeWorkbook = Globals.AMPSAddin.Application.ActiveWorkbook;
                var form = new SubscriptionForm(activeWorkbook);
                form.WorksheetRange = Globals.AMPSAddin.Application.ActiveWindow.ActiveSheet.Name+"!"+ activeCell.Address;

                if (form.ShowDialog() == DialogResult.OK)
                {
                    AMPSAddin.ServerDefinition serverDef = Globals.AMPSAddin.getWorkbookInfo(activeWorkbook).Servers[form.ServerName];
                    Client c = new Client(Guid.NewGuid().ToString());
                    c.connect(serverDef.URL);
                    c.logon();
                    string[] worksheetNames = form.WorksheetRange.Split('!');
                    AMPSAddin.SubscriptionDefinition def = new AMPSAddin.SubscriptionDefinition
                    {
                        Name = form.SubscriptionName,
                        ServerName = form.ServerName,
                        Topic = form.Topic,
                        WorksheetRange = form.WorksheetRange,
                        Filter = form.Filter
                    };

                    Globals.AMPSAddin.getWorkbookInfo(activeWorkbook).createOrUpdate(def);

                    ActiveSub.activate(def, c, serverDef.MessageType, Globals.AMPSAddin.Application.ActiveWorkbook);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Example #6
0
 private ActiveSub(Client c, string messageType, AMPSExcel.AMPSAddin.SubscriptionDefinition d, Excel.Workbook workbook)
 {
     _def = d;
     _client = c;
     _messageType = MessageTypeFactory.forName(messageType);
     string[] rangeParts = d.WorksheetRange.Split('!');
     _worksheet = workbook.Worksheets[rangeParts[0]];
     Excel.Range where = _worksheet.Range[rangeParts[1]];
     _row = where.Row;
     _col = where.Column;
     _columns["SOWKey"] = where.Column;
     _workbook = workbook;
     where.Value = "AMPS Subscription: "+ d.Name;
     _empty.Clear();
     int count = _worksheet.Rows.Count;
     for (int i = _row; i < count; ++i)
     {
         var cell = _worksheet.Cells[i, _col];
         if (!string.IsNullOrEmpty(cell.Text))
         {
             string text = cell.Text;
             if (text == "(deleted)")
                 _empty.Enqueue(i);
             else
                 _rows[text.Trim('|')] = i;
         }
         else
         {
             _lastrow = i;
             break;
         }
     }
     _cmdId = c.sowAndDeltaSubscribe(x => ReceivedMessage(x), d.Topic, d.Filter, 100, true, true, 1000);
     Globals.AMPSAddin.Application.WorkbookBeforeClose += new Excel.AppEvents_WorkbookBeforeCloseEventHandler(Application_WorkbookBeforeClose);
     workbook.BeforeClose += new Excel.WorkbookEvents_BeforeCloseEventHandler(workbook_BeforeClose);
 }
Example #7
0
 public static bool isActive(AMPSAddin.SubscriptionDefinition d)
 {
     return(_actives.ContainsKey(d));
 }