use of de.janrufmonitor.framework.ICall in project janrufmonitor by tbrandt77.
the class RunConsole method received.
public void received(IEvent event) {
if (event.getType() == IEventConst.EVENT_TYPE_IDENTIFIED_CALL) {
System.out.println("");
System.out.println("---> new incoming call ...");
ICall c = (ICall) event.getData();
System.out.println("---> Called MSN: " + c.getMSN().toString());
System.out.println("---> Calling number: " + c.getCaller().getPhoneNumber().toString());
System.out.println("---> Caller name: " + c.getCaller().getName().toString().trim());
System.out.println("---> Service (CIP): " + c.getCIP().getAdditional());
System.out.println("");
prompt();
}
}
use of de.janrufmonitor.framework.ICall in project janrufmonitor by tbrandt77.
the class PDFFilter method doExport.
public boolean doExport() {
Document document = new Document(PageSize.A4.rotate(), 20, 20, 20, 20);
document.addCreationDate();
document.addCreator("jAnrufmonitor");
try {
PdfWriter.getInstance(document, new FileOutputStream(this.m_filename));
document.open();
// get renderers
List renderer = new ArrayList();
String renderer_config = this.getRuntime().getConfigManagerFactory().getConfigManager().getProperty("ui.jface.application.journal.Journal", "renderer");
if (renderer_config != null && renderer_config.length() > 0) {
StringTokenizer s = new StringTokenizer(renderer_config, ",");
while (s.hasMoreTokens()) {
renderer.add(RendererRegistry.getInstance().getRenderer(s.nextToken()));
}
}
// get column width
float totalWidth = 0;
String[] cWidth = new String[renderer.size()];
for (int i = 0, j = renderer.size(); i < j; i++) {
cWidth[i] = getRuntime().getConfigManagerFactory().getConfigManager().getProperty("ui.jface.application.journal.Journal", "col_size_" + ((ITableCellRenderer) renderer.get(i)).getID());
if (cWidth[i] != null && cWidth[i].length() > 0) {
totalWidth += Float.parseFloat(cWidth[i]);
}
if (cWidth[i] != null && cWidth[i].length() == 0) {
cWidth[i] = "0";
}
}
float[] widths = new float[renderer.size()];
for (int i = 0, j = renderer.size(); i < j; i++) {
widths[i] = Float.parseFloat(cWidth[i]) / totalWidth;
}
PdfPTable table = new PdfPTable(widths);
table.setHeaderRows(1);
table.setWidthPercentage(100f);
ITableCellRenderer t = null;
PdfPCell cell = null;
for (int i = 0, j = renderer.size(); i < j; i++) {
t = (ITableCellRenderer) renderer.get(i);
if (t == null) {
this.m_logger.severe("No renderer found for ID: " + (String) renderer.get(i));
this.m_logger.severe("Export to PDF format canceled...");
return false;
}
cell = new PdfPCell(new Paragraph(t.getHeader()));
cell.setBackgroundColor(new Color(0xC0, 0xC0, 0xC0));
table.addCell(cell);
}
ICall c = null;
String cellContent = null;
for (int i = 0, j = this.m_callList.size(); i < j; i++) {
c = this.m_callList.get(i);
for (int k = 0, m = renderer.size(); k < m; k++) {
t = (ITableCellRenderer) renderer.get(k);
t.updateData(c);
cellContent = t.renderAsText();
if (cellContent != null && cellContent.length() > 0) {
table.addCell(cellContent);
} else {
cellContent = t.renderAsImageID();
if (cellContent != null && cellContent.length() > 0) {
try {
if (cellContent.startsWith("db://")) {
InputStream in = ImageHandler.getInstance().getImageStream(c.getCaller());
if (in != null) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
Stream.copy(in, out, true);
in.close();
out.close();
Image pdfImage = Image.getInstance(out.toByteArray());
// pdfImage.scaleAbsolute(90.0f, 45.0f);
table.addCell(pdfImage);
} else {
table.addCell(" ");
}
} else if (new File(cellContent).exists()) {
Image pdfImage = Image.getInstance(cellContent);
table.addCell(pdfImage);
} else {
Image pdfImage = Image.getInstance(SWTImageManager.getInstance(PIMRuntime.getInstance()).getImagePath(cellContent));
table.addCell(pdfImage);
}
} catch (IOException e) {
this.m_logger.severe(e.getMessage());
table.addCell(" ");
}
} else
table.addCell(" ");
}
}
}
document.add(table);
} catch (DocumentException de) {
this.m_logger.severe(de.getMessage());
return false;
} catch (IOException ioe) {
this.m_logger.severe(ioe.getMessage());
return false;
} finally {
document.close();
}
return true;
}
use of de.janrufmonitor.framework.ICall in project janrufmonitor by tbrandt77.
the class MailNotification method sendTestMail.
public void sendTestMail() {
ICaller caller = getRuntime().getCallerFactory().createCaller(getRuntime().getCallerFactory().createName("Max", "Mustermann"), getRuntime().getCallerFactory().createPhonenumber("49", "30", "1234567890"));
IMsn msn = getRuntime().getMsnManager().createMsn("12345");
ICip cip = getRuntime().getCipManager().createCip("999");
ICall call = getRuntime().getCallFactory().createCall(caller, msn, cip);
if (this.m_configuration == null) {
PropagationFactory.getInstance().fire(new de.janrufmonitor.exception.Message(de.janrufmonitor.exception.Message.ERROR, NAMESPACE, "notstarted", new String[] {}, new Exception()), "Tray");
return;
}
if (this.m_task == null) {
this.m_task = new MailTask();
this.m_logger.info("Created new MailTask instance");
}
PropagationFactory.getInstance().fire(new de.janrufmonitor.exception.Message(de.janrufmonitor.exception.Message.INFO, NAMESPACE, "testmail", new String[] {}, new Exception()), "Tray");
this.m_task.setConfiguration(this.m_configuration);
this.m_task.addMail(call);
this.m_task.run();
}
use of de.janrufmonitor.framework.ICall in project janrufmonitor by tbrandt77.
the class DeleteAction method run.
public void run() {
Viewer v = this.m_app.getApplication().getViewer();
if (v != null) {
IStructuredSelection selection = (IStructuredSelection) v.getSelection();
if (!selection.isEmpty()) {
Object o = selection.getFirstElement();
if (o instanceof ICall) {
o = ((ICall) o).getCaller();
}
if (o instanceof ICaller) {
if (hasCallerSound((ICaller) o) && MessageDialog.openConfirm(new Shell(Display.getCurrent()), this.getI18nManager().getString(this.getNamespace(), "delete", "label", this.getLanguage()), this.getI18nManager().getString(this.getNamespace(), "delete", "description", this.getLanguage()))) {
IAttribute att = ((ICaller) o).getAttribute(SoundConst.ATTRIBUTE_USER_SOUNDFILE);
att.setValue("");
((ICaller) o).setAttribute(att);
this.m_app.getController().updateElement(o);
this.m_app.updateViews(false);
}
}
}
}
}
use of de.janrufmonitor.framework.ICall in project janrufmonitor by tbrandt77.
the class JournalController method updateElement.
public synchronized void updateElement(Object call, boolean isUpdateAll) {
if (call instanceof ICall) {
ICallManager cm = this._getRepository();
if (cm != null && cm.isActive() && cm.isSupported(IReadCallRepository.class) && cm.isSupported(IWriteCallRepository.class)) {
ICaller caller = ((ICall) call).getCaller();
if (!caller.getPhoneNumber().isClired() && isUpdateAll) {
ICallList cl = ((IReadCallRepository) cm).getCalls(new CallerFilter(caller));
ICall aCall = null;
for (int i = cl.size() - 1; i >= 0; i--) {
aCall = cl.get(i);
aCall.setCaller(caller);
}
((IWriteCallRepository) cm).updateCalls(cl);
} else {
// update a single CLIR call or isUpdateAll == false
if (cm.isSupported(IWriteCallRepository.class))
((IWriteCallRepository) cm).updateCall((ICall) call);
}
}
}
}
Aggregations