package ribbonx.outlook14.addin; import javafx.event.ActionEvent; import javafx.event.Event; import javafx.event.EventHandler; import com.wilutions.com.ComException; import com.wilutions.com.Dispatch; import com.wilutions.com.DispatchImpl; import com.wilutions.mslib.outlook.AppointmentItem; import com.wilutions.mslib.outlook.ContactItem; import com.wilutions.mslib.outlook.Inspector; import com.wilutions.mslib.outlook.InspectorEvents; import com.wilutions.mslib.outlook.MailItem; import com.wilutions.mslib.outlook._Inspector; public class OutlookInspector extends DispatchImpl implements InspectorEvents { private Inspector m_Window; // Use these instance variables to handle item-level events private MailItem m_Mail; // wrapped MailItem private AppointmentItem m_Appointment; // wrapped AppointmentItem private ContactItem m_Contact; // wrapped ContactItem private ContactItem m_Task; // wrapped TaskItem // Define other class-level item instance variables as needed private EventHandler<Event> Close; private EventHandler<InvalidateEventArgs> InvalidateControl; public OutlookInspector(_Inspector inspector) { m_Window = Dispatch.as(inspector, Inspector.class); // Hookup the close event m_Window.withEvents(this); } public void Close_addEventHandler(EventHandler<Event> h) { this.Close = h; } public void Close_removeEventHandler() { this.Close = null; } public void InvalidateControl_addEventHandler(EventHandler<InvalidateEventArgs> h) { this.InvalidateControl = h; } public void InvalidateControl_removeEventHandler() { this.InvalidateControl = null; } @Override public void onActivate() throws ComException { // TODO Auto-generated method stub } @Override public void onDeactivate() throws ComException { // TODO Auto-generated method stub } @Override public void onClose() throws ComException { // Unhook events from the window m_Window.releaseEvents(this); // Raise the OutlookInspector close event if (Close != null) { Close.handle(new ActionEvent(this, null)); } // Unhook any item-level instance variables // m_Contact = null; m_Window = null; } private void RaiseInvalidateControl(String controlID) { if (InvalidateControl != null) InvalidateControl.handle(new InvalidateEventArgs(this, controlID)); } public static class InvalidateEventArgs extends ActionEvent { private static final long serialVersionUID = 1L; private final String controlID; public InvalidateEventArgs(Object source, String controlId) { super(source, null); controlID = controlId; } public String getControlID() { return controlID; } } public Inspector getWindow() { return m_Window; } }