/*
Copyright (c) 2014 Wolfgang Imig
This file is part of the library "Java Add-in for Microsoft Office".
This file must be used according to the terms of
MIT License, http://opensource.org/licenses/MIT
*/
package com.wilutions.joa.example.cnaddin;
import com.wilutions.com.ComException;
import com.wilutions.com.Dispatch;
import com.wilutions.com.DispatchImpl;
import com.wilutions.com.JoaDll;
import com.wilutions.mslib.outlook.Inspector;
import com.wilutions.mslib.outlook.InspectorEvents;
import com.wilutions.mslib.outlook._Inspector;
public class InspectorWrapper extends DispatchImpl implements InspectorEvents {
Inspector inspector;
NoteTaskPane taskPane;
public InspectorWrapper(_Inspector _i) throws ComException {
this.inspector = Dispatch.as(_i, Inspector.class);
Dispatch.withEvents(inspector, this);
taskPane = new NoteTaskPane(this.inspector);
Globals.getThisAddin().createTaskPaneWindowAsync(taskPane, "Note", inspector, null);
}
public void setTaskPaneVisible(boolean v) throws ComException {
taskPane.setVisible(v);
}
public boolean getTaskPaneVisible() throws ComException {
return taskPane.isVisible();
}
@Override
public void onActivate() throws ComException {
System.out.println("InspectorWrapper.onActivate " + this);
}
@Override
public void onDeactivate() throws ComException {
System.out.println("InspectorWrapper.onDeactivate " + this);
}
@Override
public void onClose() throws ComException {
System.out.println("InspectorWrapper.onClose " + this);
if (taskPane != null) {
taskPane.close();
Globals.getThisAddin().getTaskPanes().remove(taskPane);
}
if (inspector != null) {
inspector.releaseComObject();
Globals.getThisAddin().getInspectorWrappers().remove(inspector);
}
JoaDll.dumpComReferenceMap("InspectorWrapper.onClose");
}
}