public Browser() { if (IsDesignMode) { return; } WebView = mbWebView.Create(); TitleChanged = new EventAdapter <TitleChangeEventArgs, mbTitleChangedCallback>(this, NativeMethods.mbOnTitleChanged); UrlChanged = new EventAdapter <UrlChangeEventArgs, mbURLChangedCallback>(this, NativeMethods.mbOnURLChanged); NewWindow = new EventAdapter <NewWindowEventArgs, mbCreateViewCallback>(this, NativeMethods.mbOnCreateView); LoadUrlBegin = new EventAdapter <LoadUrlBeginEventArgs, mbLoadUrlBeginCallback>(this, NativeMethods.mbOnLoadUrlBegin); WebSocketOnWillConnect = new EventAdapter <WebSocketWillConnectEventArgs, onWillConnect>(this, RegSocketOnWillConnect); WebSocketOnConnect = new EventAdapter <WebSocketConnectedEventArgs, onConnected>(this, RegSocketOnConnected); WebSocketOnReceive = new EventAdapter <WebSocketDataEventArgs, onReceive>(this, RegSocketOnReceive); WebSocketOnSend = new EventAdapter <WebSocketDataEventArgs, onSend>(this, RegSocketOnSend); WebSocketOnError = new EventAdapter <WebSocketErrorEventArgs, onError>(this, RegSocketOnError); LoadUrlEnd = new EventAdapter <LoadUrlEndEventArgs, mbLoadUrlEndCallback>(this, NativeMethods.mbOnLoadUrlEnd); DocumentReady = new EventAdapter <DocumentReadyEventArgs, mbDocumentReadyCallback>(this, NativeMethods.mbOnDocumentReady); mbPaintBitUpdatedCallback = new mbPaintBitUpdatedCallback(mbPaintBitUpdated); NativeMethods.mbOnPaintBitUpdated(WebView, mbPaintBitUpdatedCallback, IntPtr.Zero); ClipToBounds = true; Focusable = true; IsEnabled = true; InputMethod.SetIsInputMethodEnabled(this, true); InputMethod.SetIsInputMethodSuspended(this, false); InputMethod.Current.ImeState = InputMethodState.Off; }
private void SetRecyclerViewAdapters() { try { MAdapter = new EventAdapter(Activity) { EventList = new ObservableCollection <EventDataObject>() }; MAdapter.ItemClick += MAdapterOnItemClick; LayoutManager = new LinearLayoutManager(Activity); MRecycler.SetLayoutManager(LayoutManager); var sizeProvider = new FixedPreloadSizeProvider(10, 10); var preLoader = new RecyclerViewPreloader <EventDataObject>(Activity, MAdapter, sizeProvider, 10 /*maxPreload*/); MRecycler.AddOnScrollListener(preLoader); MRecycler.SetAdapter(MAdapter); MRecycler.HasFixedSize = true; MRecycler.SetItemViewCacheSize(10); MRecycler.GetLayoutManager().ItemPrefetchEnabled = true; RecyclerViewOnScrollListener xamarinRecyclerViewOnScrollListener = new RecyclerViewOnScrollListener(LayoutManager); MainScrollEvent = xamarinRecyclerViewOnScrollListener; MainScrollEvent.LoadMoreEvent += MainScrollEventOnLoadMoreEvent; MRecycler.AddOnScrollListener(xamarinRecyclerViewOnScrollListener); MainScrollEvent.IsLoading = false; } catch (Exception e) { Console.WriteLine(e); } }
/// <summary> /// Экспортировать события, загрузив их из файла /// </summary> private void ExportEventsFromFile(Exporter exporter, DateTime date) { // загрузка таблицы событий из файла EventTableLight eventTable = new EventTableLight(); EventAdapter eventAdapter = new EventAdapter(); eventAdapter.FileName = ServerUtils.BuildEvFileName(Settings.ArcDir, date); try { eventAdapter.Fill(eventTable); } catch (Exception ex) { log.WriteAction(string.Format(Localization.UseRussian ? "Ошибка при загрузке таблицы событий из файла {0}: {1}" : "Error loading event table from file {0}: {1}", eventAdapter.FileName, ex.Message)); } // добавление событий в очередь экспорта if (eventTable.AllEvents.Count > 0) { foreach (EventTableLight.Event ev in eventTable.AllEvents) { exporter.EnqueueEvent(ev); } log.WriteAction(Localization.UseRussian ? "События добавлены в очередь экспорта" : "Events added to export queue"); } else { log.WriteAction(Localization.UseRussian ? "Отсутствуют события для экспорта" : "No events to export"); } }
public async static void WhiteBoxTest_EventAdapter_LoadEvents_Description() { Event[] events = await EventAdapter.LoadEvents(); Assert.IsTrue("The Software Engineering II presentation for Iteration 0" == events[1].EventDescription); //Not guaranteed to have an event description }
private void btnOpen_Click(object sender, EventArgs e) { if (rbSrez.Checked) { dataTable = new DataTable("SrezTable"); SrezAdapter sa = new SrezAdapter(); sa.FileName = txtFileName.Text; sa.Fill(dataTable); } else if (rbEvent.Checked) { dataTable = new DataTable("EventTable"); EventAdapter ea = new EventAdapter(); ea.FileName = txtFileName.Text; ea.Fill(dataTable); } else // rbBase.Checked { dataTable = new DataTable("BaseTable"); BaseAdapter ba = new BaseAdapter(); ba.FileName = txtFileName.Text; ba.Fill(dataTable, true); } dataGridView.DataSource = dataTable; }
private void LoadEvents() { _events.Clear(); Task.Factory.StartNew(() => { var databaseEvents = DaoManager.Get().EventDao.Find("Team_Id", _myApplication.CurrentTeam.Id.ToString()); foreach (var databaseEvent in databaseEvents) { _events.Add(new EventItem { Id = databaseEvent.Id, Name = databaseEvent.Name, StartDate = databaseEvent.StartDate, EndDate = databaseEvent.EndDate, EventType = databaseEvent.EventType }); } }).ContinueWith(task => { _eventAdapter = new EventAdapter(Activity, Resource.Layout.calendar_list_item, _events.ToArray()); _calendarList.Adapter = _eventAdapter; _eventAdapter.NotifyDataSetChanged(); }, TaskScheduler.FromCurrentSynchronizationContext()); }
public async static void WhiteBoxTest_EventAdapter_LoadEvents_Speakers() { Event[] events = await EventAdapter.LoadEvents(); Console.WriteLine(events[0].EventSpeakers); //Asert.IsTrue("" == events[0].EventSpeakers); }
/// <summary> /// Построить полное имя файла таблицы событий на основе даты /// </summary> public static string BuildEvFileName(string arcDir, DateTime date) { return((new StringBuilder()) .Append(arcDir).Append("Events").Append(Path.DirectorySeparatorChar) .Append(EventAdapter.BuildEvTableName(date)) .ToString()); }
/// <summary> /// Отобразить форму редактирования или просмотра таблицы срезов /// </summary> public static void Show(string directory, string tableName, bool editMode, Log errLog) { if (string.IsNullOrEmpty(directory)) { throw new ArgumentException("directory"); } if (string.IsNullOrEmpty(tableName)) { throw new ArgumentException("tableName"); } if (errLog == null) { throw new ArgumentNullException("errLog"); } EventAdapter eventAdapter = new EventAdapter(); eventAdapter.Directory = directory; eventAdapter.TableName = tableName; DataTable dataTable = new DataTable(); if (LoadDataTable(eventAdapter, errLog, ref dataTable)) { FrmEventTableEdit frmEventTableEdit = new FrmEventTableEdit(); frmEventTableEdit.errLog = errLog; frmEventTableEdit.eventAdapter = eventAdapter; frmEventTableEdit.dataTable = dataTable; frmEventTableEdit.editMode = editMode; frmEventTableEdit.ShowDialog(); } }
/// <summary> /// Get a table of events for the day from the cache or from the server /// </summary> /// <remarks>The returned table after loading is not changed by an instance of this class, /// thus, reading its data is thread safe. /// The method always returns a non-null object.</remarks> public EventTableLight GetEventTable(DateTime date) { try { // getting event table from cache date = date.Date; var utcNowDT = DateTime.UtcNow; var cacheItem = EventTableCache.GetOrCreateItem(date, utcNowDT); // blocking access to only one event table lock (cacheItem) { var table = cacheItem.Value; // table to get var tableAge = cacheItem.ValueAge; // table file change time bool tableIsNotValid = utcNowDT - cacheItem.ValueRefrDT > DataValidSpan; // the table might be out of date // getting event table from server if (table == null || tableIsNotValid) { string tableName = EventAdapter.BuildEvTableName(date); var newTableAge = serverComm.ReceiveFileAge(ServerComm.Dirs.Events, tableName); if (newTableAge == DateTime.MinValue) { // the table file does not exist or there is no connection to the server table = null; // do not clog the log //log.WriteError($"Unable to receive modification time of the event table {tableName}"); } else if (newTableAge != tableAge) // table file changed { table = new EventTableLight(); if (serverComm.ReceiveEventTable(tableName, table)) { table.FileModTime = newTableAge; table.LastFillTime = utcNowDT; } else { throw new ScadaException("Unable to receive event table."); } } if (table == null) { table = new EventTableLight(); } // update table in cache EventTableCache.UpdateItem(cacheItem, table, newTableAge, utcNowDT); } return(table); } } catch (Exception ex) { log.WriteException(ex, "Error getting event table for {0} from the cache or from the server", date.ToLocalizedDateString()); return(new EventTableLight()); } }
private bool editMode; // режим редактирования /// <summary> /// Конструктор /// </summary> private FrmEventTableEdit() { InitializeComponent(); errLog = null; eventAdapter = null; dataTable = null; editMode = false; }
/// <summary> /// Initializes a new instance of the class. /// </summary> public FrmEventTable(Log errLog) : this() { this.errLog = errLog ?? throw new ArgumentNullException("errLog"); eventAdapter = new EventAdapter(); dataTable = new DataTable(); FileName = ""; AllowEdit = false; }
}// End of Constructor function /// <summary> /// Add event /// </summary> /// <param name="event_o"></param> /// <param name="user_log"></param> /// <returns></returns> public Event addEvent(Event event_o, UserSystem user_log) { return(http_service.JSONHttpPettitionObject <Event>( HttpMethod.POST, GetType().Name.ToLower().Replace( TWords.SERVICE, TWords.SLASH), JsonConvert.SerializeObject( EventAdapter.ObjectToDTO( event_o)))); }// End of addEvent function
/// <summary> /// A Frame that contains a grid layout, with the last column being /// a stack layout with any number of speaker views. /// </summary> /// <param name="anEvent">Event object to be rendered on event page</param> public EventView(Event anEvent) { InitializeComponent(); Label eventTopic = this.FindByName <Label>("Topic"); Label eventDesc = this.FindByName <Label>("Description"); Label eventDate = this.FindByName <Label>("Date"); Image eventImage = this.FindByName <Image>("Image"); eventTopic.FontSize = 16; eventTopic.FontAttributes = FontAttributes.Bold; eventDate.Text = EventAdapter.ConvertDate(anEvent.EventDate); // Jacksons code <<<< eventTopic.Text += anEvent.EventTopic; eventDesc.Text = anEvent.EventDescription; CultureInfo provider = CultureInfo.InvariantCulture; // This is the action that is executed when the event image is clicked. eventImage.GestureRecognizers.Add(new TapGestureRecognizer { Command = new Command(() => { try { Device.OpenUri(new Uri(anEvent.EventSignUpUrl)); } catch (FormatException res) { } }) }); //Set image to the event image, if there is an error (no image, or malformed uri) //Set a default image. try { eventImage.Source = new Uri(anEvent.EventImg); } catch (FormatException res) { eventImage.Source = ImageSource.FromFile(("noimage.png")); } //Only show speakers label if there are any speaker for this event if (anEvent.EventSpeakers.Length > 0) { this.FindByName <Label>("Speaker").Text = "Speakers"; } //For every speaker create a speaker form them under this event foreach (Speaker speaker in anEvent.EventSpeakers) { this.FindByName <StackLayout>("Layout").Children.Add(new SpeakerView(speaker)); } }
public Guid Insert(EventDTO eventDto) { eventDto.EventId = Guid.NewGuid(); eventDto.Address.AddressId = Guid.NewGuid(); var sEvent = EventAdapter.ToDomain(eventDto); Guid id = eventRepository.Insert(sEvent); SendMessage(); return(id); }
public List <EventDTO> GetAll() { List <EventDTO> eventsDto = new List <EventDTO>(); var events = eventRepository.FindAll(); foreach (Event cli in events) { eventsDto.Add(EventAdapter.ToDTO(cli)); } return(eventsDto); }
private bool RunAllConditionsAsAnd(EventAdapter eventToFilter) { foreach (Func <Event, bool> filter in _filters) { if (!filter(eventToFilter.Event)) { return(false); } } return(true); }
private void InitGUIElements(View view) { rwEvents = view.FindViewById <RecyclerView>(Resource.Id.rw_events); rwEvents.HasFixedSize = true; var layoutManager = new LinearLayoutManager(view.Context, LinearLayoutManager.Vertical, false); rwEvents.SetLayoutManager(layoutManager); adapter = new EventAdapter(Instance.Events); rwEvents.SetAdapter(adapter); }
}// End of ImageToEvent function /// <summary> /// Update event /// </summary> /// <param name="event_o"></param> /// <param name="user_log"></param> /// <returns></returns> public Event updateEvent(Event event_o, UserSystem user_log) { return(http_service.JSONHttpPettitionObject <Event>( HttpMethod.PUT, GetType().Name.ToLower().Replace( TWords.SERVICE, string.Format( TWords.ONEPARAM, event_o.id)), JsonConvert.SerializeObject( EventAdapter.ObjectToDTO(event_o)))); } // End of updateEvent function
public override async void InitilizeView(View view) { mainRcyle = (RecyclerView)view.FindViewById(Resource.Id.recylrvw_events); result = new List <EventList>(); eventAdapter = new EventAdapter(result, Activity); LinearLayoutManager linearLayoutManager = new LinearLayoutManager(Activity); linearLayoutManager.Orientation = LinearLayoutManager.Vertical; mainRcyle.SetLayoutManager(linearLayoutManager); mainRcyle.SetAdapter(eventAdapter); _IEventListService = new EventListService(); await GetEventList(); }
/// <summary> /// Download event table /// </summary> private static bool LoadDataTable(EventAdapter eventAdapter, Log errLog, ref DataTable dataTable) { try { eventAdapter.Fill(dataTable); return(true); } catch (Exception ex) { string errMsg = AppPhrases.LoadEventTableError + ":\r\n" + ex.Message; if (errLog != null) { errLog.WriteAction(errMsg, Log.ActTypes.Exception); } ScadaUiUtils.ShowError(errMsg); return(false); } }
/// <summary> /// 创建一个反向WS服务端 /// </summary> /// <param name="config">服务器配置</param> /// <param name="crashAction">发生未处理异常时的回调</param> /// <exception cref="ArgumentNullException">读取到了空配置文件</exception> /// <exception cref="ArgumentOutOfRangeException">服务器启动参数错误</exception> internal SoraWebsocketServer(ServerConfig config, Action <Exception> crashAction = null) { _serverReady = false; Log.Info("Sora", $"Sora WebSocket服务器初始化... [{_serverId}]"); Config = config ?? throw new ArgumentNullException(nameof(config)); //检查端口占用 if (Helper.IsPortInUse(Config.Port)) { var e = new InvalidOperationException($"端口{Config.Port}已被占用,请更换其他端口"); Log.Fatal(e, "Sora", $"端口{Config.Port}已被占用,请更换其他端口", Config); throw e; } //写入初始化信息 if (!StaticVariable.ServiceConfigs.TryAdd(_serverId, new ServiceConfig(Config))) { throw new DataException("try add service config failed"); } //检查参数 if (Config.Port == 0) { throw new ArgumentOutOfRangeException(nameof(Config.Port), "Port 0 is not allowed"); } //初始化连接管理器 ConnManager = new ConnectionManager(Config); //实例化事件接口 Event = new EventAdapter(_serverId, Config.ThrowCommandException, Config.SendCommandErrMsg); //禁用原log FleckLog.Level = (LogLevel)4; Server = new WebSocketServer($"ws://{Config.Host}:{Config.Port}") { //出错后进行重启 RestartAfterListenError = true }; //全局异常事件 AppDomain.CurrentDomain.UnhandledException += (_, args) => { if (crashAction == null) { Helper.FriendlyException(args); } else { crashAction(args.ExceptionObject as Exception); } }; _serverReady = true; }
private int CycleOrders(EventAdapter caller, EventAdapter other) { foreach (FilterVM filterVm in _eventsPageVm.FilterVms) { if (filterVm.FilterBuilder.ConstructOrderFunc() is Func <Event, Event, int> comparer) { int result = comparer(caller.Event, other.Event); if (result != 0) { return(result); } } } return(0); }
private void btnOpen_Click(object sender, EventArgs e) { try { if (rbSnapshot.Checked) { dataTable = new DataTable("SrezTable"); srezTable = new SrezTable(); SrezAdapter sa = new SrezAdapter(); sa.FileName = txtFileName.Text; sa.Fill(dataTable); sa.Fill(srezTable); dataTable.RowChanged += DataTable_RowChanged; dataTable.Columns["DateTime"].ReadOnly = true; dataTable.Columns["CnlNum"].ReadOnly = true; } else if (rbEvent.Checked) { dataTable = new DataTable("EventTable"); srezTable = null; EventAdapter ea = new EventAdapter(); ea.FileName = txtFileName.Text; ea.Fill(dataTable); } else // rbBase.Checked { dataTable = new DataTable("BaseTable"); srezTable = null; BaseAdapter ba = new BaseAdapter(); ba.FileName = txtFileName.Text; ba.Fill(dataTable, true); } dataTable.DefaultView.AllowNew = !rbSnapshot.Checked; dataTable.DefaultView.AllowEdit = true; dataGridView.DataSource = dataTable; } catch (Exception ex) { dataTable = null; ScadaUiUtils.ShowError(ex.Message); } finally { ShowRecordCount(); } }
/// <summary> /// 创建一个正向WS客户端 /// </summary> /// <param name="config">配置文件</param> /// <param name="crashAction">发生未处理异常时的回调</param> /// <exception cref="DataException">数据初始化错误</exception> /// <exception cref="ArgumentNullException">空配置文件错误</exception> /// <exception cref="ArgumentOutOfRangeException">参数错误</exception> internal SoraWebsocketClient(ClientConfig config, Action <Exception> crashAction = null) { _clientReady = false; Log.Info("Sora", $"Sora WebSocket客户端初始化... [{_clientId}]"); Config = config ?? throw new ArgumentNullException(nameof(config)); //写入初始化信息 if (!StaticVariable.ServiceConfigs.TryAdd(_clientId, new ServiceConfig(config))) { throw new DataException("try add service config failed"); } //检查参数 if (Config.Port == 0) { throw new ArgumentOutOfRangeException(nameof(Config.Port), "Port 0 is not allowed"); } //初始化连接管理器 ConnManager = new ConnectionManager(Config); //实例化事件接口 Event = new EventAdapter(_clientId, Config.ThrowCommandException, Config.SendCommandErrMsg); //处理连接路径 string serverPath = string.IsNullOrEmpty(Config.UniversalPath) ? $"ws://{Config.Host}:{Config.Port}" : $"ws://{Config.Host}:{Config.Port}/{Config.UniversalPath.Trim('/')}/"; Log.Debug("Sora", $"Onebot服务器地址:{serverPath}"); Client = new WebsocketClient(new Uri(serverPath), CreateSocket) { ReconnectTimeout = Config.ReconnectTimeOut, ErrorReconnectTimeout = Config.ReconnectTimeOut }; //全局异常事件 AppDomain.CurrentDomain.UnhandledException += (_, args) => { if (crashAction == null) { Helper.FriendlyException(args); } else { crashAction(args.ExceptionObject as Exception); } }; _clientReady = true; }
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { var view = inflater.Inflate(Resource.Layout.fragment, container, false); Cheeseknife.Inject(this, view); _list = App.Container.Resolve <IApiService>().GetAllEvents(); _adapter = new EventAdapter(_list); _adapter.OnItemClicked += Adapter_OnItemClicked; _recyclerView.SetAdapter(_adapter); _recyclerView.HasFixedSize = true; _recyclerView.SetLayoutManager(new LinearLayoutManager(Activity)); OnDataLoaded?.Invoke(this, null); _refresher.Refresh += Refresher_OnRefresh; _floatingActionButton.Visibility = ViewStates.Visible; return(view); }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); Title = ((EventsViewModel)DataContext).GroupName; SetActivityContentView(Resource.Layout.Events, Resource.Id.events_layout); SupportActionBar.SetDisplayHomeAsUpEnabled(true); SupportActionBar.SetHomeButtonEnabled(true); SetUpProgressDialog(this, "Loading Events..."); allEvents = Settings.ShowAllEvents; ViewModel = (EventsViewModel)DataContext; ListView = FindViewById <ListView>(Resource.Id.eventsList); SearchView = FindViewById <SearchView>(Resource.Id.events_searchview); EventAdapter = new EventAdapter(this, ViewModel.Events); ListView.Adapter = EventAdapter; #region Events ListView.ItemClick += GoToEvent; SearchView.QueryTextChange += (s, e) => EventAdapter.Filter(e.NewText); SearchView.QueryTextSubmit += (s, e) => EventAdapter.Filter(e.Query); ViewModel.Events.CollectionChanged += (s, e) => EventAdapter.UpdateListView(); ViewModel.FinishedFirstLoad += (index) => { if (ViewModel.Events.Count == 0) { return; } Timer timer = new Timer(); timer.Interval = 1000; timer.Elapsed += (s, e) => RunOnUiThread(() => ListView.SetSelection(index)); }; #endregion }
/// <summary> /// Loads events from file and adds to the queue. /// </summary> private void ExportEventsFromFile(DateTime minDT, DateTime maxDT) { if (minDT.Date != maxDT.Date) { log.WriteError(Localization.UseRussian ? "Временной диапазон событий должен быть в пределах одних суток" : "The time range of events must be within one day"); return; } string fileName = ServerUtils.BuildEvFileName(arcDir, minDT.Date); if (!File.Exists(fileName)) { log.WriteError(string.Format(CommonPhrases.NamedFileNotFound, fileName)); return; } try { EventTableLight eventTable = new EventTableLight(); EventAdapter eventAdapter = new EventAdapter { FileName = fileName }; eventAdapter.Fill(eventTable); foreach (EventTableLight.Event ev in eventTable.AllEvents) { if (minDT <= ev.DateTime && ev.DateTime <= maxDT) { EnqueueEvent(ev); } } } catch (Exception ex) { log.WriteException(ex, Localization.UseRussian ? "Ошибка при загрузке событий из файла {0}" : "Error loading events from file {0}", fileName); } }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.EventManager); // Setting services userService = new UserService(DataBase.current_user); // Get views from Layout listView = FindViewById <ListView>(Resource.Id.evm_list_view); // Get the events List eventList = userService.GetEventsByGroup(GroupActivity.current_group); // Create the adapter and Click action Adapters.EventAdapter adapter = new EventAdapter(this, eventList); listView.Adapter = adapter; listView.ItemClick += OnListEventItemClick; }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.EventManager); // Setting services userService = new UserService(DataBase.current_user); // Get views from Layout listView = FindViewById<ListView>(Resource.Id.evm_list_view); // Get the events List eventList = userService.GetEventsByGroup(GroupActivity.current_group); // Create the adapter and Click action Adapters.EventAdapter adapter = new EventAdapter(this, eventList); listView.Adapter = adapter; listView.ItemClick += OnListEventItemClick; }
public Browser() { InitializeComponent(); if (IsDesignMode) { return; } WebView = mbWebView.Create(); TitleChanged = new EventAdapter <TitleChangeEventArgs, mbTitleChangedCallback>(this, NativeMethods.mbOnTitleChanged); UrlChanged = new EventAdapter <UrlChangeEventArgs, mbURLChangedCallback>(this, NativeMethods.mbOnURLChanged); NewWindow = new EventAdapter <NewWindowEventArgs, mbCreateViewCallback>(this, NativeMethods.mbOnCreateView); LoadUrlBegin = new EventAdapter <LoadUrlBeginEventArgs, mbLoadUrlBeginCallback>(this, NativeMethods.mbOnLoadUrlBegin); WebSocketOnWillConnect = new EventAdapter <WebSocketWillConnectEventArgs, onWillConnect>(this, RegSocketOnWillConnect); WebSocketOnConnect = new EventAdapter <WebSocketConnectedEventArgs, onConnected>(this, RegSocketOnConnected); WebSocketOnReceive = new EventAdapter <WebSocketDataEventArgs, onReceive>(this, RegSocketOnReceive); WebSocketOnSend = new EventAdapter <WebSocketDataEventArgs, onSend>(this, RegSocketOnSend); WebSocketOnError = new EventAdapter <WebSocketErrorEventArgs, onError>(this, RegSocketOnError); LoadUrlEnd = new EventAdapter <LoadUrlEndEventArgs, mbLoadUrlEndCallback>(this, NativeMethods.mbOnLoadUrlEnd); DocumentReady = new EventAdapter <DocumentReadyEventArgs, mbDocumentReadyCallback>(this, NativeMethods.mbOnDocumentReady); JsQuery = new EventAdapter <OnJsQueryEventArgs, mbJsQueryCallback>(this, NativeMethods.mbOnJsQuery); DownLoad = new EventAdapter <DownloadEventArgs, mbDownloadCallback>(this, NativeMethods.mbOnDownload); DownLoadInBlinkThread = new EventAdapter <DownloadDownloadInBlinkThreadEventArg, mbDownloadInBlinkThreadCallback>(this, NativeMethods.mbOnDownloadInBlinkThread); _mbPaintUpdatedCallback = new mbPaintUpdatedCallback(OnPaintUpdate); _mbPaintBitUpdatedCallback = new mbPaintBitUpdatedCallback(mbPaintBitUpdated); NativeMethods.mbSetAutoDrawToHwnd(WebView, true); NativeMethods.mbOnPaintUpdated(WebView, _mbPaintUpdatedCallback, IntPtr.Zero); //NativeMethods.mbOnPaintBitUpdated(WebView, _mbPaintBitUpdatedCallback, IntPtr.Zero); if (!IsHandleCreated) { CreateHandle(); } WebView.SetHandle(Handle); ImeContext.SetImeStatus(ImeMode.NoControl, Handle); ImeMode = ImeMode.Off; Disposed += Browser_Disposed; DoubleBuffered = true; }
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Gets the layout, and all the relevant views it contains. Layout = inflater.Inflate(Resource.Layout.EventList, null) .FindViewById<FrameLayout>(Resource.Id.layout); List = Layout.FindViewById<ListView>(Resource.Id.list); // Show spinner Layout.RemoveAllViews(); Layout.AddView(new ProgressBar(Activity)); ThreadPool.QueueUserWorkItem(o => { // Get joined events and create adapter. Adapter = new EventAdapter<Event>(Activity, MainActivity.CIF.GetJoinedEvents(100)); // On leave click Adapter.OnAction1 = (i) => { // Build an alertdialog var alertBuilder = new Android.Support.V7.App.AlertDialog.Builder(Activity); alertBuilder.SetTitle(Resources.GetString(Resource.String.leave_event)); alertBuilder.SetMessage(Resources.GetString(Resource.String.message_leave_event_confirm)); alertBuilder.SetNegativeButton(Resources.GetString(Resource.String.no), (s, e) => { }); alertBuilder.SetPositiveButton(Resources.GetString(Resource.String.yes), (s, e) => { var @event = Adapter.Items[i]; //Leave and remove event. MainActivity.CIF.CancelReg(@event); Adapter.RemoveAt(i); // Show update snackbar AccentSnackBar.Make(Layout, Activity, Resources.GetString(Resource.String.event_left) + @event.Title, 2000).Show(); }); // Show alertdialog alertBuilder.Show(); }; Adapter.OnUpdatePosition = (view, evnt, exp) => { view.FindViewById<TextView>(Resource.Id.title).Text = evnt.Title; view.FindViewById<TextView>(Resource.Id.subtitle).Text = evnt.Date.ToString("G"); // Content of card contains description, location, slotstaken and slotstotal. view.FindViewById<TextView>(Resource.Id.expanded_content).Text = string.Format("{0}\n\n{1}: {2}\n{3}: {4}/{5}", evnt.Description, Resources.GetString(Resource.String.event_place), evnt.Location, Resources.GetString(Resource.String.event_participants), evnt.SlotsTaken, evnt.SlotsTotal); view.FindViewById<Button>(Resource.Id.action1).Text = GetString(Resource.String.leave_button); // Remove second button. view.FindViewById<Button>(Resource.Id.action2).Visibility = ViewStates.Gone; }; Activity.RunOnUiThread(() => { // Set listview adapter List.Adapter = Adapter; // Remove spinner, and add listview Layout.RemoveAllViews(); Layout.AddView(List); }); }); return Layout; }
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Gets the layout, and all the relevant views it contains. Layout = inflater.Inflate(Resource.Layout.EventList, null) .FindViewById<FrameLayout>(Resource.Id.layout); List = Layout.FindViewById<ListView>(Resource.Id.list); // Show spinner Layout.RemoveAllViews(); Layout.AddView(new ProgressBar(Activity)); ThreadPool.QueueUserWorkItem(o => { // Get recommended events and create adapter. Adapter = new EventAdapter<Offer>(Activity, MainActivity.CIF.RequestOffers()); // On decline click Adapter.OnAction1 = (i) => { // get event var @event = Adapter.Items[i]; // reply and remove event MainActivity.CIF.ReplyOffer(false, @event); Adapter.RemoveAt(i); // Show update snackbar AccentSnackBar.Make(Layout, Activity, Resources.GetString(Resource.String.event_decline) + @event.Title, 2000).Show(); }; // On accept click Adapter.OnAction2 = (i) => { // get event var @event = Adapter.Items[i]; // reply and remove event MainActivity.CIF.ReplyOffer(true, @event); Adapter.RemoveAt(i); // Show update snackbar AccentSnackBar.Make(Layout, Activity, Resources.GetString(Resource.String.event_accepted) + @event.Title, 2000).Show(); }; Adapter.OnUpdatePosition = (view, evnt, exp) => { var offer = evnt as Offer; string matchs = GetString(Resource.String.event_matchedby) + ":\n"; view.FindViewById<TextView>(Resource.Id.title).Text = offer.Title; view.FindViewById<TextView>(Resource.Id.subtitle).Text = offer.Date.ToString("G"); AddInfo(offer.Match.Interests, InfoType.Interest, ref matchs); AddInfo(offer.Match.FoodHabits, InfoType.FoodHabit, ref matchs); AddInfo(offer.Match.Languages, InfoType.Language, ref matchs); // Content of card contains description, location, slotstaken, slotstotal and matches. view.FindViewById<TextView>(Resource.Id.expanded_content).Text = string.Format("{0}\n\n{1}: {2}\n{3}: {4}/{5}\n\n{6}", offer.Description, Resources.GetString(Resource.String.event_place), offer.Location, Resources.GetString(Resource.String.event_participants), offer.SlotsTaken, offer.SlotsTotal, matchs); view.FindViewById<Button>(Resource.Id.action1).Text = GetString(Resource.String.decline_button); view.FindViewById<Button>(Resource.Id.action2).Text = GetString(Resource.String.accept_button); }; Activity.RunOnUiThread(() => { // Set listview adapter List.Adapter = Adapter; // Remove spinner, and add listview Layout.RemoveAllViews(); Layout.AddView(List); }); }); return Layout; }
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Gets the layout, and all the relevant views it contains. Layout = inflater.Inflate(Resource.Layout.HostList, null) .FindViewById<CoordinatorLayout>(Resource.Id.layout); List = Layout.FindViewById<ListView>(Resource.Id.list); Fab = Layout.FindViewById<FloatingActionButton>(Resource.Id.fab); Layout.RemoveAllViews(); // Show spinner var pd = new ProgressBar(Activity); pd.LayoutParameters = new CoordinatorLayout.LayoutParams(-1, -1); Layout.AddView(pd); ThreadPool.QueueUserWorkItem(o => { // Get hosting events and create adapter. Adapter = new EventAdapter<Event>(Activity, MainActivity.CIF.GetHostedEvents(100)); Adapter.OnUpdatePosition = (view, evnt, exp) => { view.FindViewById<TextView>(Resource.Id.title).Text = evnt.Title; view.FindViewById<TextView>(Resource.Id.subtitle).Text = evnt.Date.ToString("G"); // Content of card contains description, location, slotstaken and slotstotal. view.FindViewById<TextView>(Resource.Id.expanded_content).Text = string.Format("{0}\n\n{1}: {2}\n{3}: {4}/{5}", evnt.Description, Resources.GetString(Resource.String.event_place), evnt.Location, Resources.GetString(Resource.String.event_participants), evnt.SlotsTaken, evnt.SlotsTotal); view.FindViewById<Button>(Resource.Id.action1).Text = GetString(Resource.String.cancel_button); view.FindViewById<Button>(Resource.Id.action2).Text = GetString(Resource.String.edit_button); ; }; // On cancel click Adapter.OnAction1 = (i) => { // Build an alertdialog var alertBuilder = new Android.Support.V7.App.AlertDialog.Builder(Activity); alertBuilder.SetTitle(Resources.GetString(Resource.String.cancel_event)); alertBuilder.SetMessage(Resources.GetString(Resource.String.message_cancel_event_confirm)); alertBuilder.SetNegativeButton(Resources.GetString(Resource.String.no_abort), (s, e) => { }); alertBuilder.SetPositiveButton(Resources.GetString(Resource.String.yes_cancel), (s, e) => { var @event = Adapter.Items[i]; //Delete and remove event. MainActivity.CIF.DeleteEvent(@event); Adapter.RemoveAt(i); // Show update snackbar AccentSnackBar.Make(Layout, Activity, Resources.GetString(Resource.String.event_canceled) + @event.Title, 2000).Show(); }); // Show alertdialog alertBuilder.Show(); }; Adapter.OnAction2 = EditEvent; Fab.Click += (s, e) => NewEvent(); Activity.RunOnUiThread(() => { // Set listview adapter List.Adapter = Adapter; // Remove spinner, and add listview and Fab Layout.RemoveAllViews(); Layout.AddView(List); Layout.AddView(Fab); }); }); return Layout; }