Example #1
0
    @Override
    public boolean importData(JComponent comp, Transferable transferable) {
      boolean result = false;

      if (comp instanceof JTable) {
        final JTable tbl = (JTable) comp;

        try {
          final int iSelectedRow = tbl.getSelectedRow();
          if (iSelectedRow != -1) {
            final TimelimitTaskTableModel tblmdl =
                TimelimitTaskController.this.timelimittaskview.getTimelimitTaskTableModel();
            final CollectableTimelimitTask clctTarget = tblmdl.getCollectable(iSelectedRow);
            final TimelimitTaskVO taskvoTarget = clctTarget.getTimelimitTaskVO();

            final GenericObjectIdModuleProcess goimp =
                (GenericObjectIdModuleProcess)
                    transferable.getTransferData(new GenericObjectIdModuleProcess.DataFlavor());

            if (taskvoTarget.getCompleted() != null) {
              final String sMessage =
                  getSpringLocaleDelegate()
                      .getMessage(
                          "TimelimitTaskController.5",
                          "Dieser Eintrag ist bereits abgeschlossen. Er kann nicht mehr ver\u00e4ndert werden.");
              throw new NuclosBusinessException(sMessage);
            }
            boolean bDoIt = (taskvoTarget.getGenericObjectId() == null);
            if (!bDoIt) {
              final String sQuestion =
                  getSpringLocaleDelegate()
                          .getMessage(
                              "TimelimitTaskController.13",
                              "Soll das Objekt \"{0}\" zugeordnet werden?",
                              goimp.getGenericObjectIdentifier())
                      + "\n"
                      + getSpringLocaleDelegate()
                          .getMessage(
                              "TimelimitTaskController.3",
                              "Die bestehende Zuordnung zu \"{0}\" wird dadurch aufgehoben.",
                              taskvoTarget.getIdentifier());
              final int iBtn =
                  JOptionPane.showConfirmDialog(
                      this.parent,
                      sQuestion,
                      getSpringLocaleDelegate()
                          .getMessage(
                              "TimelimitTaskController.17", "Zugeordnetes Objekt \u00e4ndern"),
                      JOptionPane.OK_CANCEL_OPTION);
              bDoIt = (iBtn == JOptionPane.OK_OPTION);
            }

            if (bDoIt) {
              taskvoTarget.setGenericObjectId(new Integer(goimp.getGenericObjectId()));
              final TimelimitTaskVO taskvoUpdated = tltaskDelegate.update(taskvoTarget);
              tblmdl.setCollectable(iSelectedRow, new CollectableTimelimitTask(taskvoUpdated));
              result = true;
            }
          }
        } catch (UnsupportedFlavorException ex) {
          JOptionPane.showMessageDialog(
              parent,
              getSpringLocaleDelegate()
                  .getMessage(
                      "TimelimitTaskController.4",
                      "Dieser Datentransfer wird von dem ausgew\u00e4hlten Objekt nicht unterst\u00fctzt."));
        } catch (IOException ex) {
          throw new NuclosFatalException(ex);
        } catch (CommonBusinessException ex) {
          Errors.getInstance().showExceptionDialog(parent, ex);
        }
      }

      return result;
    }