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]); }
public static ActiveSub find(AMPSAddin.SubscriptionDefinition d) { if (_actives.ContainsKey(d)) { return(_actives[d]); } else { return(null); } }
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); }
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); } }
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); } }
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); }
public static bool isActive(AMPSAddin.SubscriptionDefinition d) { return(_actives.ContainsKey(d)); }