/** * Creates the event. * * @param event the event * @param category_ids the category_ids * @return the long */ public long createEvent(Event event, long[] category_ids) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(KEY_EVENT_TITLE, event.getTitle()); values.put(KEY_EVENT_STARTDATE, event.getStartDate()); values.put(KEY_EVENT_ENDDATE, event.getEndDate()); values.put(KEY_EVENT_STARTTIME, event.getStartTime()); values.put(KEY_EVENT_ENDTIME, event.getEndTime()); values.put(KEY_EVENT_DESCRIPTION, event.getDescription()); values.put(KEY_EVENT_REPEAT, event.getRepeat()); // insert row long event_id = db.insert(TABLE_EVENT, null, values); // assigning categories to events for (long category_id : category_ids) { createEventCategory(event_id, category_id); } // for logging // Log.e("createEvent", event.toString()); // db.close(); return event_id; }
public Event getByTitle(String title) { for (Event event : list) { if (event.getTitle().equals(title)) { return event; } } return null; }
public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; int type = getItemViewType(position); Event event = events.get(position); if (convertView == null) { holder = new ViewHolder(); switch (type) { case DAY: convertView = mInflater.inflate(R.layout.day_item, null); holder.day = (TextView) convertView.findViewById(R.id.day_title); break; case EVENT: convertView = mInflater.inflate(R.layout.search_list_item, null); holder.hour = (TextView) convertView.findViewById(R.id.event_hour); holder.title = (TextView) convertView.findViewById(R.id.event_title); holder.image = (ImageView) convertView.findViewById(R.id.event_favorite); holder.row = (LinearLayout) convertView.findViewById(R.id.event_row); holder.eventId = event.getId(); break; } convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } if (event != null) { if (event.getExternalId() == 0) { String dayText = BaseActivity.getDateFromTimestamp(event.getDate(), context); holder.day.setText(dayText); } else { // Hour. String hour = event.getStartHour(); if (hour.length() == 0) { hour = context.getString(R.string.event_whole_day); } holder.hour.setText(hour); // Title. String title = event.getTitle(); holder.title.setText(title); // Favorite. if (event.getFavorite() == 0) { holder.image.setImageResource(R.drawable.fav_off_small); } else { holder.image.setImageResource(R.drawable.fav_on_small); } holder.eventId = event.getId(); convertView.setOnTouchListener(eventTouch); } } return convertView; }
public boolean createEvent(Event e) { if (eventList.contains(e)) return true; String query = "INSERT INTO tb_events (evn_id, evn_titile, evn_description, evn_location, evn_start_time, evn_end_time, evn_created_time, evn_created_by, evn_contact_info, evn_cat_id, evn_url, evn_count_like, evn_count_dislike, evn_status, evn_tag, evn_tag_id)"; query = query + " VALUES (NULL, '" + e.getTitle() + "', '" + e.getDescription() + "', '" + e.getLocation() + "', '" + e.getStartDayTime() + "', '" + e.getEndDayTime() + "', '" + e.getCreatedDayTime() + "', " + e.getCreatedBy() + ", '" + e.getContact() + "', " + e.getCategory() + ", '" + e.getUrl() + "', " + e.getLike() + ", " + e.getDislike() + ", " + e.getStatus() + ", '" + e.getTags() + "', NULL)"; Log.i(LOG_TAG, query); List<HashMap<String, String>> result = DBComunicationLayer.executeHttpPost(DBComunicationLayer.PHP_INSERT, query); e.setId(result.get(0).get("evn_id")); eventList.add(e); // add all Tags into Tag Table /* for (int i =0; i< e.getTagList().size();i++) { String query2 = "INSERT INTO tb_tags (tag_id, tag_name)"+ " VALUES (NULL, '"+e.getTagList().get(i)+"')"; List<HashMap<String, String>> result2 = DBComunicationLayer.executeHttpPost( DBComunicationLayer.PHP_INSERT, query2); } */ // return result.get( 0 ).get( "result" ).equals( "1" ); return true; }
/** * Update event. * * @param event the event * @return the int */ public int updateEvent(Event event) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(KEY_EVENT_TITLE, event.getTitle()); values.put(KEY_EVENT_STARTDATE, event.getStartDate()); values.put(KEY_EVENT_ENDDATE, event.getEndDate()); values.put(KEY_EVENT_STARTTIME, event.getStartTime()); values.put(KEY_EVENT_ENDTIME, event.getEndTime()); values.put(KEY_EVENT_DESCRIPTION, event.getDescription()); values.put(KEY_EVENT_REPEAT, event.getRepeat()); // updating row return db.update( TABLE_EVENT, values, KEY_ID + " = ?", new String[] {String.valueOf(event.getId())}); }
/** * Check conflictin update events. * * @param newEvent the new event * @return true, if successful * @throws ParseException the parse exception */ @SuppressLint("LongLogTag") public boolean checkConflictinUpdateEvents(Event newEvent) throws ParseException { SimpleDateFormat timeFormat = new SimpleDateFormat("hh:mm"); String sTime = newEvent.getStartTime(); String sDate = newEvent.getStartDate(); String eTime = newEvent.getEndTime(); String eDate = newEvent.getEndDate(); Date parsedStartTime = timeFormat.parse(sTime); Timestamp newStartTime = new Timestamp(parsedStartTime.getTime()); Date parsedEndTime = timeFormat.parse(eTime); Timestamp newEndTime = new Timestamp(parsedEndTime.getTime()); if (sDate.equalsIgnoreCase(eDate)) { if (newStartTime.after(newEndTime)) { Log.e("Illogiacl Update", "StartTime is greater then EndTime"); return false; } } List<Event> allEvents = getEvent(sDate, eDate); for (Event prevEvent : allEvents) { Log.d( "Event: " + prevEvent.getTitle(), "" + prevEvent.getId() + " " + prevEvent.getDescription()); Date parsedPreviousStartTime = timeFormat.parse(prevEvent.getStartTime()); Timestamp previousStartTime = new Timestamp(parsedPreviousStartTime.getTime()); Date parsedPreviousEndTime = timeFormat.parse(prevEvent.getEndTime()); Timestamp previousEndTime = new Timestamp(parsedPreviousEndTime.getTime()); if (newStartTime.after(previousStartTime) && newStartTime.before(previousEndTime) || newEndTime.after(previousStartTime) && newEndTime.before(previousEndTime) || previousStartTime.after(newStartTime) && previousStartTime.before(newEndTime) || previousEndTime.after(newStartTime) && previousEndTime.before(newEndTime)) { if (newEvent.getId() != prevEvent.getId()) { Log.e("Conflict with existent event", "Can't update this event"); return false; } } } return true; }
public EventListByDateAdapter(Context c, String startDate, String endDate) { eContext = c; this.startDate = startDate; this.endDate = endDate; // this.ctg = ctg; // db = new MySQLiteHelper(eContext); // Getting all Events Log.d("Get Events", "Getting All Events"); dayEvents = new ArrayList<Event>(); try { stDate = dateFormat.parse(startDate); eDate = dateFormat.parse(endDate); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } // Getting all Events Log.d("Get Events", "Getting All Events"); allEvents = SimpleCalendarView.db.getAllEvents(); for (Event event : allEvents) { Date eventStartDate = new Date(); // Date eventEndDate = new Date(); try { eventStartDate = dateFormat.parse(event.getStartDate()); // eventEndDate = dateFormat.parse(event.getEndDate()); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } if (((eventStartDate.compareTo(stDate) >= 0) && (eventStartDate.compareTo(eDate) <= 0))) { dayEvents.add(event); Log.d( "Event:" + event.getTitle(), "ID:" + event.getId() + "Description:" + event.getDescription()); } } }
/** * This is the constructor which initializes the instance variables and the components. Also at * last it will display the initial screen. * * @param m is the model and HAS-A relationship gets constructed here. */ public MonthlyView(Model m) { // CHANGING THE FONT AND SIZE java.io.InputStream is = DailyView.class.getResourceAsStream("Raleway-Regular.ttf"); try { Font font = Font.createFont(Font.TRUETYPE_FONT, is); railWay = font.deriveFont(Font.PLAIN, 12); railWayMed = font.deriveFont(Font.PLAIN, 20); railWayBigBold = font.deriveFont(Font.BOLD, 26); railWayHuge = font.deriveFont(Font.PLAIN, 100); } catch (FontFormatException e1) { e1.printStackTrace(); } catch (IOException e1) { e1.printStackTrace(); } // MAIN MONTH VIEW PANEL // -------------------------------------------------------------------- this.setLayout(new FlowLayout()); monthViewPanel = new JPanel(); monthViewPanel.setBackground(Color.WHITE); model = m; ghettoCurrDate = new int[] { MONTHS.valueOf(model.getCurrentMonth() + "").ordinal(), model.getCurrentDay(), model.getCurrentYear() }; // {month, day, // year} // (Derick) currDate = model.getCurrentDate(); temp = new GregorianCalendar(); temp.set(currDate.get(Calendar.YEAR), currDate.get(Calendar.MONTH), 1); firstdayoftheweek = temp.get(Calendar.DAY_OF_WEEK); daysInMonth = currDate.getActualMaximum(Calendar.DATE); dayButton = new JButton[31]; // UPPER HALF PANEL // -------------------------------------------------------------------------- JPanel upperPanel = new JPanel(); upperPanel.setLayout(new FlowLayout(FlowLayout.CENTER)); upperPanel.setBackground(Color.WHITE); // CURRENT MONTH & YEAR PANEL dateLabelOfMonthPanel.setBackground(Color.WHITE); // JLabel dateLabelOfMonth = new JLabel(""); // JLabel dateLabelOfYear = new JLabel(""); dateLabelOfMonth.setText(model.getCurrentMonth() + " "); dateLabelOfYear.setText(Integer.toString(model.getCurrentYear())); dateLabelOfMonth.setFont(railWayHuge); dateLabelOfYear.setFont(railWayHuge); dateLabelOfMonth.setForeground(Color.BLACK); dateLabelOfYear.setForeground(babyTeal); dateLabelOfMonthPanel.add(dateLabelOfMonth); dateLabelOfMonthPanel.add(dateLabelOfYear); upperPanel.add(dateLabelOfMonthPanel, BorderLayout.CENTER); // PREVIOUS & NEXT BUTTON PANEL // JPanel previousNextButtonPanel = new JPanel(new GridLayout(1, 2)); // JPanel previousButtonLeftPanel = new JPanel(); // JButton previousButton = new JButton(); // try // { // Image img = ImageIO.read(getClass().getResource("pre1.png")); // previousButton.setIcon(new ImageIcon(img)); // Image newimg = img.getScaledInstance(50, 50, // java.awt.Image.SCALE_SMOOTH); // previousButton.setIcon(new ImageIcon(newimg)); // } catch (IOException ex) // { // } // previousButton.setOpaque(false); // previousButton.setBorderPainted(false); // previousButton.addActionListener(new ActionListener() // { // public void actionPerformed(ActionEvent e) // { // model.prevMonth();; // } // }); // dateLabelOfMonthPanel.add(previousButton); // previousButtonLeftPanel.add(previousButton); // previousNextButtonPanel.add(previousButtonLeftPanel, new // FlowLayout(FlowLayout.LEFT)); // upperPanel.add(previousNextButtonPanel); // // // Creates the next button // JButton nextButton = new JButton(); // try // { // Image img = ImageIO.read(getClass().getResource("next1.png")); // Image newimg = img.getScaledInstance(50, 50, // java.awt.Image.SCALE_SMOOTH); // nextButton.setIcon(new ImageIcon(newimg)); // } catch (IOException ex) // { // } // nextButton.setOpaque(false); // nextButton.setBorderPainted(false); // nextButton.setPreferredSize(new Dimension(50, 50)); // nextButton.addActionListener(new ActionListener() // { // public void actionPerformed(ActionEvent e) // { // model.nextDay(); // } // }); // JPanel daysOftheWeekPanel = new JPanel(); JLabel daysOftheWeek = new JLabel(""); daysOftheWeekPanel.setLayout(new GridLayout()); daysOftheWeekPanel.setBackground(babyTeal); String[] days = {"SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY"}; for (int i = 0; i < days.length; i++) { final String label = days[i]; JLabel dayLabel = new JLabel(label); dayLabel.setForeground(Color.BLACK); dayLabel.setBackground(lightBlue); dayLabel.setHorizontalAlignment(SwingConstants.CENTER); daysOftheWeekPanel.add(dayLabel); dayLabel.setFont(railWayMed); daysOftheWeekPanel.add(dayLabel); } dayDayPanel.setLayout(new GridLayout(0, 7)); for (int i = 1; i < firstdayoftheweek; i++) { JLabel dayLabell = new JLabel(""); dayDayPanel.add(dayLabell); } for (int i = 0; i < dayButton.length; i++) { final int counter = i + 1; GregorianCalendar foo = new GregorianCalendar(); foo.set(model.getCurrentYear(), model.getCurrentDate().get(Calendar.MONTH), i + 1); String star = ""; if (model.findEvent(foo) == true) star = " *"; dayButton[i] = new JButton(Integer.toString(i + 1) + star); dayButton[i].setOpaque(true); dayButton[i].setBorder(dayBorder); dayButton[i].setBackground(lightBlue); dayButton[i].setPreferredSize(new Dimension(205, 90)); dayButton[i].addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { daynumber = counter; model.changeDay(daynumber); DailyView.createAndShowDailyViewGUI(model); } }); } for (int i = 0; i <= daysInMonth; i++) { dayDayPanel.add(dayButton[i]); dayButton[i].setPreferredSize(new Dimension(205, 90)); dayButton[i].setBackground(Color.WHITE); dayButton[i].setHorizontalAlignment(SwingConstants.LEFT); dayButton[i].setVerticalAlignment(SwingConstants.NORTH); // set the current date to a certain color if (i + 1 == model.getCurrentDay()) { dayButton[i].setBackground(lightBlue); } } dayViewPanel = new JPanel(); dayViewPanel.setLayout(new BorderLayout()); dayLabel = new JLabel(); dayViewPanel.setBackground(Color.WHITE); dayLabel.setText( model.getCurrentDayoftheWeek() + " " + (model.getCurrentDate().get(Calendar.MONTH) + 1) + "/" + model.getCurrentDay()); // JTextArea dayViewArea = new JTextArea(20,50); ArrayList<Event> listofE = new ArrayList<Event>(); listofE = model.getEventsOfToday(); if (listofE != null) { Collections.sort(listofE); } String s = ""; for (int i = 0; i <= 24; i++) { if (i < 10) { s += ("0" + i); s += ("-------\n"); if (listofE != null) { for (Event ev : listofE) { if (ev.getStartingTime().get(GregorianCalendar.HOUR_OF_DAY) == i) { s += ev.getTitle(); s += " at " + ev.getStartingTime().get(Calendar.HOUR) + ":"; if (ev.getStartingTime().get(Calendar.MINUTE) < 10) { s += "0" + ev.getStartingTime().get(Calendar.MINUTE); } else s += ev.getStartingTime().get(Calendar.MINUTE); if (ev.getStartingTime().get(Calendar.AM_PM) == 0) { s += "AM"; } else s += "PM"; s += " to " + ev.getEndingTime().get(Calendar.HOUR) + ":"; if (ev.getEndingTime().get(Calendar.MINUTE) < 10) { s += "0" + ev.getEndingTime().get(Calendar.MINUTE); } else s += ev.getEndingTime().get(Calendar.MINUTE); if (ev.getEndingTime().get(Calendar.AM_PM) == 0) { s += "AM"; } else s += "PM"; } } } s += "\n\n"; } else { s += i; s += ("-------\n"); if (listofE != null) { for (Event ev : listofE) { if (ev.getStartingTime().get(GregorianCalendar.HOUR_OF_DAY) == i) { s += ev.getTitle(); s += " at " + ev.getStartingTime().get(Calendar.HOUR) + ":"; if (ev.getStartingTime().get(Calendar.MINUTE) < 10) { s += "0" + ev.getStartingTime().get(Calendar.MINUTE); } else s += ev.getStartingTime().get(Calendar.MINUTE); if (ev.getStartingTime().get(Calendar.AM_PM) == 0) { s += "AM"; } else s += "PM"; s += " to " + ev.getEndingTime().get(Calendar.HOUR) + ":"; if (ev.getEndingTime().get(Calendar.MINUTE) < 10) { s += "0" + ev.getEndingTime().get(Calendar.MINUTE); } else s += ev.getEndingTime().get(Calendar.MINUTE); if (ev.getEndingTime().get(Calendar.AM_PM) == 0) { s += "AM"; } else s += "PM"; } } } s += "\n\n"; } } /* * dayViewArea.setText(s); dayViewScrollPane = new * JScrollPane(dayViewArea); dayViewPanel.add(dayLabel, * BorderLayout.NORTH); dayViewPanel.add(dayViewScrollPane, * BorderLayout.CENTER); */ monthViewPanel.setLayout(new BoxLayout(monthViewPanel, BoxLayout.Y_AXIS)); monthViewPanel.add(dateLabelOfMonthPanel); monthViewPanel.add(daysOftheWeekPanel); monthViewPanel.add(dayDayPanel); monthViewPanel.setAlignmentX(Component.CENTER_ALIGNMENT); dayDayPanel.setBackground(Color.WHITE); add(monthViewPanel); }
protected void onPostExecute(List<Event> eventList) { setContentView(R.layout.activity_event); SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.event_marker); mapFragment.getMapAsync(EventActivity.this); dialog.hide(); final Button b = (Button) findViewById(R.id.join); for (Event event : eventList) { if (event.attendees.contains(userID)) { b.setText("Leave Event"); } if (event.creator.equals(userID)) { b.setText("Delete Event"); } } b.setOnClickListener( new View.OnClickListener() { public void onClick(View v) { if (b.getText().equals("I'm up!")) { System.out.println("Joining"); new attendEvent() .execute("https://protected-ocean-61024.herokuapp.com/event/join/", id); dialog.setCancelable(false); dialog.setMessage("Submitting request"); dialog.setInverseBackgroundForced(false); dialog.show(); } else if (b.getText().equals("Leave Event")) { System.out.println("Leaving"); new attendEvent() .execute("https://protected-ocean-61024.herokuapp.com/event/leave/", id); dialog.setCancelable(false); dialog.setMessage("Submitting request"); dialog.setInverseBackgroundForced(false); dialog.show(); } else if (b.getText().equals("Delete Event")) { new attendEvent() .execute("https://protected-ocean-61024.herokuapp.com/event/delete/", id); dialog.setCancelable(false); dialog.setMessage("Deleting event"); dialog.setInverseBackgroundForced(false); dialog.show(); } } }); final Event e = eventList.get(0); title = (TextView) findViewById(R.id.event_info_title); date = (TextView) findViewById(R.id.event_info_date); img = (ImageView) findViewById(R.id.event_info_image); title.setText(e.getTitle()); date.setText(e.getFullDate()); String category = e.getCategory(); Bitmap largeIcon = BitmapFactory.decodeResource(getApplicationContext().getResources(), getImage(category)); largeIcon = hlp.getRoundedCornerBitmap(largeIcon, 500); img.setImageBitmap(largeIcon); String str = e.getLocation(); List<String> strList = Arrays.asList(str.split(",")); coords.add(0, Double.parseDouble(strList.get(1))); coords.add(1, Double.parseDouble(strList.get(0))); }