Example usage for org.eclipse.jface.action IToolBarManager add

List of usage examples for org.eclipse.jface.action IToolBarManager add

Introduction

In this page you can find the example usage for org.eclipse.jface.action IToolBarManager add.

Prototype

void add(IAction action);

Source Link

Document

Adds an action as a contribution item to this manager.

Usage

From source file:ch.elexis.core.ui.views.RezepteView.java

License:Open Source License

@Override
public void createPartControl(final Composite parent) {
    setTitleImage(Images.IMG_VIEW_RECIPES.getImage());
    parent.setLayout(new GridLayout());
    master = tk.createForm(parent);/*from  w w  w.j a v a 2s. c om*/
    master.setLayoutData(SWTHelper.getFillGridData(1, true, 1, true));
    master.getBody().setLayout(new FillLayout());
    SashForm sash = new SashForm(master.getBody(), SWT.NONE);
    tv = new TableViewer(sash, SWT.V_SCROLL | SWT.FULL_SELECTION);
    tv.setContentProvider(new IStructuredContentProvider() {

        public Object[] getElements(final Object inputElement) {
            Query<Rezept> qbe = new Query<Rezept>(Rezept.class);
            /*
             * Patient act = (Patient) ElexisEventDispatcher .getSelected(Patient.class);
             */
            if (actPatient != null) {
                qbe.add(Rezept.PATIENT_ID, Query.EQUALS, actPatient.getId());
                qbe.orderBy(true, new String[] { Rezept.DATE, PersistentObject.FLD_LASTUPDATE });
                List<Rezept> list = qbe.execute();
                return list.toArray();
            } else {
                return new Object[0];
            }
        }

        public void dispose() { /* leer */
        }

        public void inputChanged(final Viewer viewer, final Object oldInput, final Object newInput) { /* leer */
        }

    });
    tv.setLabelProvider(new LabelProvider() {

        @Override
        public String getText(final Object element) {
            if (element instanceof Rezept) {
                Rezept rp = (Rezept) element;
                return rp.getLabel();
            }
            return element.toString();
        }

        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.LabelProvider#getImage(java.lang.Object )
         */
        @Override
        public Image getImage(Object element) {
            List<OutputLog> outputs = OutputLog.getOutputs((PersistentObject) element);
            if (outputs != null && outputs.size() > 0) {
                OutputLog o = outputs.get(0);
                String outputterID = o.getOutputterID();
                IOutputter io = OutputLog.getOutputter(outputterID);
                if (io != null) {
                    return (Image) io.getSymbol();
                }
            }
            return null;
        }

    });
    tv.addSelectionChangedListener(GlobalEventDispatcher.getInstance().getDefaultListener());
    lvRpLines = new ListViewer(sash);
    makeActions();
    menus = new ViewMenus(getViewSite());
    // menus.createToolbar(newRpAction, addLineAction, printAction );
    menus.createMenu(newRpAction, addLineAction, printAction, deleteRpAction);
    menus.createViewerContextMenu(lvRpLines, removeLineAction, changeMedicationAction);
    // make selection of prescription viewer available for commands of
    // context menu
    getSite().setSelectionProvider(lvRpLines);
    IToolBarManager tm = getViewSite().getActionBars().getToolBarManager();
    List<IAction> importers = Extensions.getClasses(
            Extensions.getExtensions(ExtensionPointConstantsUi.REZEPT_HOOK), //$NON-NLS-1$
            "RpToolbarAction", false); //$NON-NLS-1$
    for (IAction ac : importers) {
        tm.add(ac);
    }
    if (importers.size() > 0) {
        tm.add(new Separator());
    }
    tm.add(newRpAction);
    tm.add(addLineAction);
    tm.add(printAction);
    tv.setInput(getViewSite());

    /* Implementation Drag&Drop */
    PersistentObjectDropTarget.IReceiver dtr = new PersistentObjectDropTarget.IReceiver() {

        public boolean accept(PersistentObject o) {
            // TODO Auto-generated method stub
            return true;
        }

        public void dropped(PersistentObject o, DropTargetEvent ev) {
            Rezept actR = (Rezept) ElexisEventDispatcher.getSelected(Rezept.class);
            if (actR == null) {
                SWTHelper.showError(Messages.RezepteView_NoPrescriptionSelected, //$NON-NLS-1$
                        Messages.RezepteView_PleaseChoosaAPrescription); //$NON-NLS-1$
                return;
            }
            if (o instanceof Artikel) {
                Artikel art = (Artikel) o;

                Prescription p = new Prescription(art, actR.getPatient(), StringConstants.EMPTY,
                        StringConstants.EMPTY);
                actR.addPrescription(p);
                refresh();
            } else if (o instanceof Prescription) {
                Prescription pre = (Prescription) o;
                Prescription now = new Prescription(pre.getArtikel(), actR.getPatient(), pre.getDosis(),
                        pre.getBemerkung());
                actR.addPrescription(now);
                refresh();
            }

        }
    };

    // final TextTransfer textTransfer = TextTransfer.getInstance();
    // Transfer[] types = new Transfer[] {textTransfer};
    dropTarget = new PersistentObjectDropTarget("Rezept", lvRpLines.getControl(), dtr); //$NON-NLS-1$

    lvRpLines.setContentProvider(new RezeptContentProvider());
    lvRpLines.setLabelProvider(new RezeptLabelProvider());
    lvRpLines.getControl().setToolTipText(Messages.RezepteView_DragMedicamentsHere); //$NON-NLS-1$
    /* lvRpLines.addDragSupport(DND.DROP_COPY,types, */
    new PersistentObjectDragSource(lvRpLines);
    lvRpLines.setInput(getViewSite());
    addLineAction.setEnabled(false);
    printAction.setEnabled(false);
    GlobalEventDispatcher.addActivationListener(this, this);
    tv.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(DoubleClickEvent event) {
            try {
                RezeptBlatt rp = (RezeptBlatt) getViewSite().getPage().showView(RezeptBlatt.ID);
                Rezept actR = (Rezept) ElexisEventDispatcher.getSelected(Rezept.class);
                Brief rpBrief = actR.getBrief();
                if (rpBrief != null) {
                    // existing - just reads prescriptiom and opens
                    // RezeptBlatt
                    rp.loadRezeptFromDatabase(actR, rpBrief);
                } else {
                    // not existing - create prescription and opens
                    // RezeptBlatt
                    rp.createRezept(actR);
                }
            } catch (Throwable ex) {
                ExHandler.handle(ex);
            }
        }

    });
}

From source file:ch.elexis.extdoc.views.ExterneDokumente.java

License:Open Source License

private void fillLocalToolBar(IToolBarManager manager) {
    manager.add(openAction);
    manager.add(editAction);/*from  w w  w.  ja v  a  2 s .  com*/
    manager.add(sendMailAction);
    manager.add(openFolderAction);
}

From source file:ch.elexis.omnivore.ui.views.OmnivoreView.java

License:Open Source License

private void fillLocalToolBar(IToolBarManager manager) {
    manager.add(importAction);
    manager.add(exportAction);
    manager.add(flatViewAction);
}

From source file:ch.elexis.views.FallListeView.java

License:Open Source License

private void createMenuAndToolbar() {
    IMenuManager mgr = getViewSite().getActionBars().getMenuManager();
    mgr.add(delFallAction);//from   w  ww .  j a v a2 s  .c om
    mgr.add(delKonsAction);
    mgr.add(new Separator());
    // mgr.add(filterAction);
    IToolBarManager tmg = getViewSite().getActionBars().getToolBarManager();
    tmg.add(GlobalActions.helpAction);
    // tmg.add(filterAction);
}

From source file:ch.elexis.views.LaborView.java

License:Open Source License

@Override
public void createPartControl(final Composite parent) {
    setTitleImage(Desk.getImage(ICON));/*from w ww  .ja v a 2 s.c o  m*/
    parent.setLayout(new GridLayout());
    form = tk.createForm(parent);
    form.setLayoutData(SWTHelper.getFillGridData(1, true, 1, true));
    Composite body = form.getBody();
    body.setLayout(new GridLayout());

    table = new Table(body, SWT.FULL_SELECTION | SWT.LEFT | SWT.V_SCROLL | SWT.H_SCROLL);
    table.setLayoutData(SWTHelper.getFillGridData(1, true, 1, true));
    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    table.addListener(SWT.PaintItem, new Listener() {

        private void paintCell(final String text, final Event event, final Color foregnd, final Color backgnd) {
            Point size = event.gc.textExtent(text);
            int offset1 = Math.max(0, (event.width - size.x) / 2);
            int offset2 = Math.max(0, (event.height - size.y) / 2);
            GC gc = event.gc;
            gc.setForeground(backgnd);
            gc.fillRectangle(event.x, event.y, event.width, event.height);
            gc.setForeground(foregnd);
            event.gc.drawText(text, event.x + offset1, event.y + offset2, true);
        }

        public void handleEvent(final Event event) {
            TableItem item = (TableItem) event.item;
            String text = item.getText(event.index);
            LabItem it = (LabItem) item.getData(KEY_ITEM);
            if (it != null) {
                LabResult[] lrs = (LabResult[]) item.getData(KEY_VALUES);
                if (lrs != null) {
                    int screenIdx = event.index - COL_OFFSET;
                    if ((screenIdx >= 0) && (screenIdx < lrs.length)) {
                        LabResult lr = lrs[screenIdx];
                        if (lr != null) {
                            if (lr.isFlag(LabResult.PATHOLOGIC)) {
                                paintCell(text, event, COL_PATHOLOGIC, COL_BACKGND);
                            }
                            if (lr.getComment().length() > 0) {
                                paintCell(text, event, COL_REMARK, COL_BACKGND);
                            }
                        }
                    }
                }
            }
        }

    });

    cursor = new TableCursor(table, SWT.NONE);
    editor = new ControlEditor(cursor);
    editor.grabHorizontal = true;
    editor.grabVertical = true;

    /*
     * Tastatursteuerung fr die Tabelle: Druck auf Eingabetaste lsst die Zelle editieren,
     * sofern sie auf einem editierbaren Feld ist. Wenn sie nicht auf einem editierbaren Feld
     * ist, wird der stattdessen Cursor eine Zeile nach unten bewegt. Druck auf irgendeine Zahl-
     * oder Buchstabentaste lsst die Zelle editieren, wenn sie editierbar ist. Editierbar ist
     * eine Zelle dann, wenn sie sich a) in einer Spalte mit einem Datum im Kopf befindet, und
     * b) sich in einer Zeile mit einem LaborItem am Anfang befindet.
     */
    cursor.addSelectionListener(new SelectionAdapter() {
        // Tabellenauswahl soll dem Cursor folgen
        @Override
        public void widgetSelected(final SelectionEvent e) {
            table.setSelection(new TableItem[] { cursor.getRow() });
        }

        // Eingabetaste
        @Override
        public void widgetDefaultSelected(final SelectionEvent e) {

            TableItem row = cursor.getRow();
            LabItem li = (LabItem) row.getData(KEY_ITEM);
            if (li == null) {
                cursorDown();
                return;
            }
            int column = cursor.getColumn();
            if (columns[column].getText().matches(PATTERN_DECIMAL)) {
                doEdit(row.getText(column));
            }

        }
    });
    // Sonstige Taste
    cursor.addKeyListener(new KeyAdapter() {
        @Override
        public void keyPressed(final KeyEvent e) {
            if (e.character == SWT.DEL) {
                return;
            }
            TableItem row = cursor.getRow();
            e.doit = false;
            if (row.getData(KEY_ITEM) == null) {
                return;
            }
            if (e.character > 0x30) {
                StringBuilder sb = new StringBuilder();
                sb.append(e.character);
                int column = cursor.getColumn();
                if (columns[column].getText().matches(PATTERN_DECIMAL)) {
                    doEdit(sb.toString());
                }
            }
        }
    });
    cursor.addMouseListener(new MouseAdapter() {

        @Override
        public void mouseDoubleClick(final MouseEvent e) {
            LabResult lr = actResult();
            if (lr != null) {
                LabItem li = lr.getItem();
                if (li.getTyp().equals(LabItem.typ.TEXT) || (lr.getComment().length() > 0)) {
                    DisplayTextDialog dlg = new DisplayTextDialog(getViewSite().getShell(),
                            Messages.getString("LaborView.textResultTitle"), li.getName(), lr.getComment()); //$NON-NLS-1$
                    Font font = null;
                    // HL7 Befunde enthalten oft mit Leerzeichen formatierte Bemerkungen,
                    // die nur mit nicht-proportionalen Fonts dargestellt werden knnen
                    // Wir versuchen also, die Anzeige mit Courier New, ohne zu wissen ob die
                    // auf Mac und Linux auch drauf sind.
                    // Falls der Font nicht geladen werden kann, wird der System-Default Font
                    // verwendet
                    // Hier die Fonts, welche getestet worden sind:
                    // Windows: Courier New (getestet=
                    // Mac: nicht getestet
                    // Linux: nicht getestet
                    try {
                        font = new Font(null, "Courier New", 9, SWT.NORMAL); //$NON-NLS-1$
                    } catch (Exception ex) {
                        // Do nothing -> Use System Default font
                    } finally {
                        dlg.setFont(font);
                    }
                    dlg.setWhitespaceNormalized(false);
                    dlg.open();
                } else if (li.getTyp().equals(LabItem.typ.DOCUMENT)) {
                    Patient patient = ElexisEventDispatcher.getSelectedPatient();
                    if (patient != null) {
                        Query<LabResult> labResultQuery = new Query<LabResult>(LabResult.class);
                        labResultQuery.add(LabResult.PATIENT_ID, Query.EQUALS, patient.getId());
                        labResultQuery.add(LabResult.DATE, Query.EQUALS, lr.getDate());
                        labResultQuery.add(LabResult.ITEM_ID, Query.EQUALS, li.getId());
                        List<LabResult> labResultList = labResultQuery.execute();
                        if (labResultList != null && labResultList.size() > 0) {
                            new DisplayLabDokumenteDialog(getViewSite().getShell(),
                                    Messages.getString("LaborView.Documents"), labResultList).open();//$NON-NLS-1$
                        }
                    }
                }
            }
            super.mouseDoubleClick(e);
        }

    });

    makeActions();
    menu = new ViewMenus(getViewSite());
    menu.createMenu(newAction, backAction, fwdAction, printAction, importAction, xmlAction);
    // Orders
    final LaborOrderPulldownMenuCreator menuCreator = new LaborOrderPulldownMenuCreator(parent.getShell());
    if (menuCreator.getSelected() != null) {
        IAction dropDownAction = menuCreator.getAction();

        IActionBars actionBars = getViewSite().getActionBars();
        IToolBarManager toolbar = actionBars.getToolBarManager();

        toolbar.add(dropDownAction);

        // Set data
        dropDownAction.setText(menuCreator.getSelected().getText());
        dropDownAction.setToolTipText(menuCreator.getSelected().getToolTipText());
        dropDownAction.setImageDescriptor(menuCreator.getSelected().getImageDescriptor());
    }
    // Importers
    IToolBarManager tm = getViewSite().getActionBars().getToolBarManager();
    List<IAction> importers = Extensions.getClasses(Extensions.getExtensions("ch.elexis.LaborDatenImport"), //$NON-NLS-1$
            "ToolbarAction", //$NON-NLS-1$
            false);
    for (IAction ac : importers) {
        tm.add(ac);
    }
    if (importers.size() > 0) {
        tm.add(new Separator());
    }
    tm.add(refreshAction);
    tm.add(newAction);
    tm.add(backAction);
    tm.add(fwdAction);
    tm.add(printAction);
    // menu.createToolbar(newAction,backAction,fwdAction,printAction);
    final MenuManager mgr = new MenuManager("path"); //$NON-NLS-1$
    Menu menu = mgr.createContextMenu(cursor);
    mgr.setRemoveAllWhenShown(true);
    mgr.addMenuListener(new IMenuListener() {
        public void menuAboutToShow(final IMenuManager manager) {
            LabResult lr = getSelectedResult();
            if (lr != null) {
                LabItem li = lr.getItem();
                if (!li.getTyp().equals(LabItem.typ.DOCUMENT)) {
                    mgr.add(setStateAction);
                    setStateAction.setChecked(lr.isFlag(LabResult.PATHOLOGIC));
                }
            }

        }
    });
    cursor.setMenu(menu);
    // menu.createControlContextMenu(cursor, setStateAction);
    rebuild();
    GlobalEventDispatcher.addActivationListener(this, this);
}

From source file:ch.elexis.views.RezepteView.java

License:Open Source License

@Override
public void createPartControl(final Composite parent) {
    Image icon = Desk.getImage(ICON);
    if (icon != null) {
        setTitleImage(icon);/*from  w ww .  j a v  a  2 s. c  o  m*/
    }
    parent.setLayout(new GridLayout());
    master = tk.createForm(parent);
    master.setLayoutData(SWTHelper.getFillGridData(1, true, 1, true));
    master.getBody().setLayout(new FillLayout());
    SashForm sash = new SashForm(master.getBody(), SWT.NONE);
    tv = new TableViewer(sash, SWT.V_SCROLL | SWT.FULL_SELECTION);
    tv.setContentProvider(new IStructuredContentProvider() {

        public Object[] getElements(final Object inputElement) {
            Query<Rezept> qbe = new Query<Rezept>(Rezept.class);
            /*
             * Patient act = (Patient) ElexisEventDispatcher .getSelected(Patient.class);
             */
            if (actPatient != null) {
                qbe.add(Rezept.PATIENT_ID, Query.EQUALS, actPatient.getId());
                qbe.orderBy(true, new String[] { Rezept.DATE, PersistentObject.FLD_LASTUPDATE });
                List<Rezept> list = qbe.execute();
                return list.toArray();
            } else {
                return new Object[0];
            }
        }

        public void dispose() { /* leer */
        }

        public void inputChanged(final Viewer viewer, final Object oldInput, final Object newInput) { /* leer */
        }

    });
    tv.setLabelProvider(new LabelProvider() {

        @Override
        public String getText(final Object element) {
            if (element instanceof Rezept) {
                Rezept rp = (Rezept) element;
                return rp.getLabel();
            }
            return element.toString();
        }

        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.LabelProvider#getImage(java.lang.Object )
         */
        @Override
        public Image getImage(Object element) {
            List<OutputLog> outputs = OutputLog.getOutputs((PersistentObject) element);
            if (outputs != null && outputs.size() > 0) {
                OutputLog o = outputs.get(0);
                String outputterID = o.getOutputterID();
                IOutputter io = OutputLog.getOutputter(outputterID);
                if (io != null) {
                    return io.getSymbol();
                }
            }
            return null;
        }

    });
    tv.addSelectionChangedListener(GlobalEventDispatcher.getInstance().getDefaultListener());
    lvRpLines = new ListViewer(sash);
    makeActions();
    menus = new ViewMenus(getViewSite());
    // menus.createToolbar(newRpAction, addLineAction, printAction );
    menus.createMenu(newRpAction, addLineAction, printAction, deleteRpAction);
    menus.createViewerContextMenu(lvRpLines, removeLineAction, changeMedicationAction);
    // make selection of prescription viewer available for commands of context menu
    getSite().setSelectionProvider(lvRpLines);
    IToolBarManager tm = getViewSite().getActionBars().getToolBarManager();
    List<IAction> importers = Extensions.getClasses(Extensions.getExtensions("ch.elexis.RezeptHook"), //$NON-NLS-1$
            "RpToolbarAction", false); //$NON-NLS-1$
    for (IAction ac : importers) {
        tm.add(ac);
    }
    if (importers.size() > 0) {
        tm.add(new Separator());
    }
    tm.add(newRpAction);
    tm.add(addLineAction);
    tm.add(printAction);
    tv.setInput(getViewSite());

    /* Implementation Drag&Drop */
    PersistentObjectDropTarget.IReceiver dtr = new PersistentObjectDropTarget.IReceiver() {

        public boolean accept(PersistentObject o) {
            // TODO Auto-generated method stub
            return true;
        }

        public void dropped(PersistentObject o, DropTargetEvent ev) {
            Rezept actR = (Rezept) ElexisEventDispatcher.getSelected(Rezept.class);
            if (actR == null) {
                SWTHelper.showError(Messages.getString("RezepteView.NoPrescriptionSelected"), //$NON-NLS-1$
                        Messages.getString("RezepteView.PleaseChoosaAPrescription")); //$NON-NLS-1$
                return;
            }
            if (o instanceof Artikel) {
                Artikel art = (Artikel) o;

                Prescription p = new Prescription(art, actR.getPatient(), StringConstants.EMPTY,
                        StringConstants.EMPTY);
                p.setBeginDate(null);
                actR.addPrescription(p);
                refresh();
            } else if (o instanceof Prescription) {
                Prescription pre = (Prescription) o;
                Prescription now = new Prescription(pre.getArtikel(), actR.getPatient(), pre.getDosis(),
                        pre.getBemerkung());
                now.setBeginDate(null);
                actR.addPrescription(now);
                refresh();
            }

        }
    };

    // final TextTransfer textTransfer = TextTransfer.getInstance();
    // Transfer[] types = new Transfer[] {textTransfer};
    dropTarget = new PersistentObjectDropTarget("Rezept", lvRpLines.getControl(), dtr); //$NON-NLS-1$

    lvRpLines.setContentProvider(new RezeptContentProvider());
    lvRpLines.setLabelProvider(new RezeptLabelProvider());
    lvRpLines.getControl().setToolTipText(Messages.getString("RezepteView.DragMedicamentsHere")); //$NON-NLS-1$
    /* lvRpLines.addDragSupport(DND.DROP_COPY,types, */
    new PersistentObjectDragSource(lvRpLines);
    lvRpLines.setInput(getViewSite());
    addLineAction.setEnabled(false);
    printAction.setEnabled(false);
    GlobalEventDispatcher.addActivationListener(this, this);
    tv.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(DoubleClickEvent event) {
            try {
                RezeptBlatt rp = (RezeptBlatt) getViewSite().getPage().showView(RezeptBlatt.ID);
                Rezept actR = (Rezept) ElexisEventDispatcher.getSelected(Rezept.class);
                Brief rpBrief = actR.getBrief();
                if (rpBrief != null) {
                    // existing - just reads prescriptiom and opens RezeptBlatt
                    rp.loadRezeptFromDatabase(actR, rpBrief);
                } else {
                    // not existing - create prescription and opens RezeptBlatt
                    rp.createRezept(actR);
                }
            } catch (Throwable ex) {
                ExHandler.handle(ex);
            }
        }

    });
}

From source file:ch.gpb.elexis.cst.view.CstProfileEditor.java

License:Open Source License

private void fillLocalToolBar(IToolBarManager manager) {
    manager.add(actionCreateProfile);
    manager.add(actionDeleteProfile);
    manager.add(actionCopyProfile);
}

From source file:ch.gpb.elexis.cst.view.CstThemenblockEditor.java

License:Open Source License

private void fillLocalToolBar(IToolBarManager manager) {
    manager.add(actionCreateCstGroup);
    manager.add(actionDeleteCstGroup);
}

From source file:ch.hsr.ifs.cutelauncher.ui.TestRunnerViewPart.java

License:Open Source License

private void configureToolbar() {
    IActionBars actionBars = getViewSite().getActionBars();
    IToolBarManager toolBar = actionBars.getToolBarManager();

    scrollLockAction = new ScrollLockAction(this);
    scrollLockAction.setChecked(!autoScroll);

    failureOnlyAction = new FailuresOnlyFilterAction();
    failureOnlyAction.setChecked(false);

    showNextFailureAction = new ShowNextFailureAction(this);
    showNextFailureAction.setEnabled(false);
    showPreviousFailureAction = new ShowPreviousFailureAction(this);
    showPreviousFailureAction.setEnabled(false);

    rerunLastTestAction = new RerunLastTestAction();
    rerunLastTestAction.setEnabled(false);

    stopAction = new StopAction();
    stopAction.setEnabled(false);/*from w  w w.  j  av  a2 s  .c o  m*/

    toolBar.add(showNextFailureAction);
    toolBar.add(showPreviousFailureAction);
    toolBar.add(failureOnlyAction);
    toolBar.add(scrollLockAction);
    toolBar.add(new Separator());
    toolBar.add(rerunLastTestAction);
    toolBar.add(stopAction);
}

From source file:ch.medshare.elexis.directories.views.WeisseSeitenSearchView.java

License:Open Source License

private void fillLocalToolBar(IToolBarManager manager) {
    manager.add(newKontaktAction);
    manager.add(new Separator());
    manager.add(newPatientAction);//from  w w  w  .  j a va  2s . c  om
}