Package com.onpositive.commons.elements

Examples of com.onpositive.commons.elements.Container


      CompositeEditor editor, final Binding bnd, Field[] fields,
      final BaseDataFacade facade, boolean needIndexable) {
    ApiProxy.setEnvironmentForCurrentThread(new FakeEnvironment(facade
        .getAppId(), facade.namespace));

    Container text = (Container) editor.getData("text");
    Map<String, Collection<Field>> sorted = sortFields(fields, facade);
    Collection<Field> ownFields = sorted.get(facade.getKind());
    if (editor.getLayoutManager() == null) {
      editor.setLayoutManager(new OneElementOnLineLayouter());
    }
    if (ownFields == null) {
      ownFields = new HashSet<Field>();
    }
    for (Field f : ownFields) {
      text = createAppropriateControl(e, editor, bnd, facade, text, f,
          needIndexable);
    }
    if (sorted.keySet().size() > 1) {
      Container ctab = new CTabFolderElement();
      ctab.setText("Embedded");
      ctab.setBordered(true);

      text = null;
      for (String group : sorted.keySet()) {
        if (group.equals(facade.getKind())) {
          continue;
        }
        CompositeEditor container = new CompositeEditor();
        container.setText(group);
        Collection<Field> fs = sorted.get(group);
        for (final Field f : fs) {
          text = createAppropriateControl(e, container, bnd, facade,
              text, f, needIndexable);
        }
        ctab.add(container);
      }
      editor.add(ctab);
    }
    if (text != null) {
      text.getLayoutHints().setHint(new Point(400, 200));
View Full Code Here


          }
        }
        // editor.setId(binding.getId());
      } else {
        final Binding binding = bnd.getBinding(f.name);
        final Container txt = text;

        binding.setReadOnly(false);
        binding.setName(f.getTitle());

        final LinkElement bs = new LinkElement();
View Full Code Here

  private static IBinding createSpecialMultiEdit(
      final com.google.appengine.api.datastore.Entity e,
      final Binding bnd, final BaseDataFacade facade, Container text,
      final Field f, final GAEField fm, final boolean needIndexable) {
    Container m = new Container();
    m.setLayout(new GridLayout(1, false));
    m.setCaption(f.getTitle());
    final ListEnumeratedValueSelector<Object> v = new ListEnumeratedValueSelector<Object>() {
      @Override
      protected IRealm<Object> getRealm(Object value2) {

        if (this.oldRealm != null) {
          return (IRealm<Object>) this.oldRealm;
        }

        if (value2 instanceof IRealm<?>) {
          return (IRealm<Object>) value2;
        }
        if (value2 instanceof Collection) {
          final Collection<?> es = (Collection<?>) value2;

          if (value2 instanceof List) {
            return new OrderedRealm<Object>((Collection<Object>) es);
          }

          return new Realm<Object>((Collection<Object>) es);
        }
        final OrderedRealm<Object> realm = new OrderedRealm<Object>();
        if (value2 != null) {
          realm.add(value2);
        }
        this.oldRealm = realm;
        return realm;
      }

      @Override
      protected void initContentProviderFromParent() {
        if (uprovider != null) {
          this.viewer.setContentProvider(uprovider);
          this.provider = uprovider;
        } else {
          final RealmLazyContentProvider realmLazyContentProvider = new RealmLazyContentProvider() {
            @Override
            protected void enableSorting() {
              return;
            }

            @Override
            public void updateElement(int index) {
              // inverse == true means no inverse
              setInverse(true);
              super.updateElement(index);
            }
          };
          // realmLazyContentProvider.setComparator(null, true);
          this.viewer.setContentProvider(realmLazyContentProvider);
          this.registerProvider(realmLazyContentProvider);
          this.provider = realmLazyContentProvider;
        }
      }
    };
    m.add(new UniversalUIElement<ToolBar>(ToolBar.class, SWT.NONE) {

      protected ToolBar createControl(Composite conComposite) {
        ToolBarManager manager = new ToolBarManager();
        manager.add(new Action("New value") {
          {
            setImageDescriptor(AbstractUIPlugin
                .imageDescriptorFromPlugin(Activator.PLUGIN_ID,
                    "/icons/add_exc.gif"));
          }

          public void run() {
            Key parent = e.getKey();
            if (f instanceof CGAEField) {
              CGAEField cgf = (CGAEField) f;
              BaseDataFacade fac = new BaseDataFacade(
                  cgf.keyKind, facade.getProject(), facade
                      .isDebug());
              fac.setNamespace(facade.getNamespace());
              DataStoreTableUI dstui = new DataStoreTableUI();
              dstui.setFacade(fac);
              ApiProxy.setEnvironmentForCurrentThread(new FakeEnvironment(
                  facade.getAppId(), facade.namespace));
              // parent =
              // StringInputOutput.dublicateKey(parent,facade.namespace);

              Entity ent = new Entity(cgf.keyKind, parent);
              Map childrenMP = fac.getChildren(); // facade
              Object cMap = childrenMP.get(cgf.getKeyKind());
              Collection coll = null;
              if (cMap != null) {
                coll = ((Collection) ((HashMap) cMap)
                    .get(parent));
              }
              if (coll != null && coll.size() != 0) {
                Entity old = (Entity) coll
                    .toArray(new Object[coll.size()])[coll
                    .size() - 1];
                for (Iterator<String> it = old.getProperties()
                    .keySet().iterator(); it.hasNext();) {
                  ent.setProperty(it.next(), "");
                }
              }
              ArrayList<Entity> select = new ArrayList();
              select.add(ent);
              fac.determineFields(select);
              // v.addValue(ent);
              dstui.open(ent, false, false, new IUpdateList() {

                public void update(Entity e) {
                  v.addValue(e);
                }
              });// ((Collection)((HashMap)facade.getChildren().get(cgf.getKeyKind())).get(e.getKey()));

            } else {
              Object firstElement = null;
              Binding bnd = new Binding(firstElement);
              bnd.setName("Edit");
              CompositeEditor m = new CompositeEditor(bnd);
              TitledDialog dlg = new TitledDialog(m);
              GAEField singleField = fm.getSingleField();
              ApiProxy.setEnvironmentForCurrentThread(new FakeEnvironment(
                  e.getAppId()));
              Entity c = new Entity("A");

              if (fm instanceof CGAEField) {
                c = new Entity(fm.getKeyKind(), parent);
                // Entity example =
              } else {
                c.setProperty(f.name, firstElement);
              }
              createBindingsWithButton(c, m, bnd,
                  new Field[] { singleField }, facade, false);

              int open = dlg.open();
              if (open == Dialog.OK) {
                Binding bb = bnd.getBinding(f.name);
                Object value = bb.getValue();
                if (value == null || bb.isReadOnly()) {
                  value = new NullValue();
                }
                v.addValue(value);
              }
              bnd.dispose();

            }
          }
        });
        manager.add(new Action("Edit selected") {
          {
            setImageDescriptor(AbstractUIPlugin
                .imageDescriptorFromPlugin(Activator.PLUGIN_ID,
                    "/icons/text_edit.gif"));
          }

          public void run() {
            if (f instanceof CGAEField) {
              CGAEField cgf = (CGAEField) f;

              Object[] selected = v.getSelection().toArray();
              if (selected.length == 1) {
                BaseDataFacade fac = new BaseDataFacade(
                    cgf.keyKind, facade.getProject(),
                    facade.isDebug());
                fac.setNamespace(facade.getNamespace());
                DataStoreTableUI dstui = new DataStoreTableUI();
                Object selecttedd = selected[0];
                if (selecttedd instanceof Entity) {
                  final Entity sel = (Entity) selecttedd;
                  ArrayList<Entity> select = new ArrayList();
                  select.add(sel);
                  fac.determineFields(select);
                  dstui.setFacade(fac);
                  dstui.open(sel, false, true,
                      new IUpdateList() {

                        public void update(Entity e) {
                          v.removeValue(sel);
                          v.addValue(e);
                        }
                      });
                }
              }
              return;
            } else {
              Object firstElement = v.getSelection()
                  .getFirstElement();
              Binding bnd = new Binding(firstElement);
              bnd.setName("Edit");
              CompositeEditor m = new CompositeEditor(bnd);
              TitledDialog dlg = new TitledDialog(m);
              GAEField singleField = fm.getSingleField();
              ApiProxy.setEnvironmentForCurrentThread(new FakeEnvironment(
                  e.getAppId()));
              Entity c = new Entity("A");
              if (firstElement instanceof NullValue) {
                c.setProperty(f.name, null);
              } else {
                c.setProperty(f.name, firstElement);
              }
              createBindingsWithButton(c, m, bnd,
                  new Field[] { singleField }, facade, false);
              int open = dlg.open();
              if (open == Dialog.OK) {
                StructuredViewer viewer = v.getViewer();
                if (viewer instanceof TableViewer) {
                  Binding bb = bnd.getBinding(f.name);
                  Object value = bb.getValue();
                  if (value == null || bb.isReadOnly()) {
                    value = new NullValue();
                  }
                 
                  TableViewer tv = (TableViewer)viewer;
                  int index = tv.getTable().getSelectionIndex();                 
                  v.editValue(value, index);                 
                  //tv.get
                 
                } else {
                  v.removeValue(firstElement);
                  Binding bb = bnd.getBinding(f.name);
                  Object value = bb.getValue();
                  if (value == null || bb.isReadOnly()) {
                    value = new NullValue();
                  }
                  v.addValue(value);
                }
              }
              bnd.dispose();
            }
          }
        });
        manager.add(new Action("Delete selected") {
          {
            setImageDescriptor(AbstractUIPlugin
                .imageDescriptorFromPlugin(Activator.PLUGIN_ID,
                    "/icons/delete.gif"));
          }

          @SuppressWarnings("unchecked")
          public void run() {
            final List selected = v.getSelection().toList();

            if (f instanceof CGAEField) {
              final CGAEField cgf = (CGAEField) f;
              BaseDataFacade fac = new BaseDataFacade(
                  cgf.keyKind, facade.getProject(), facade
                      .isDebug());
              fac.setNamespace(facade.getNamespace());
              fac.delete(selected.toArray(new Entity[selected
                  .size()]), new OperationCallback() {

                public void passed(Object object) {
                  Collection coll = (Collection) ((HashMap) facade
                      .getChildren()
                      .get(cgf.getKeyKind())).get(e
                      .getKey());
                  coll.removeAll(selected);
                  facade.updateChildren(e);
                  v.removeValues(selected);
                }

                public void failed(Exception exception) {
                  return;
                }
              });
              // facade.updateChildren(e);
            } else {
              v.removeValues(selected);
            }
          }
        });
        return manager.createControl(conComposite);
      }

    });

    v.setValueAsSelection(false);
    Binding binding = bnd.getBinding(f.name);
    binding.setReadOnly(false);
    Object property = null;
    if (f instanceof CGAEField) {

      HashMap hashMap = (HashMap) facade.getChildren().get(
          ((CGAEField) f).keyKind);
      if (hashMap != null) {
        Collection col = (Collection) (hashMap).get(e.getKey());
        if (col != null) {
          property = new ArrayList<Object>();
          for (Iterator i = col.iterator(); i.hasNext();) {
            Entity ent = (Entity) i.next();
            ((ArrayList<Object>) property).add(ent);
            v.setLabelProvider(new LabelProvider() {

              public String getText(Object element) {
                Entity e = (Entity) element;
                String res = "";

                String[] details = ((CGAEField) f)
                    .getKeyKindDetails();
                if (details != null && details.length != 0) {
                  StringBuilder sb = new StringBuilder();
                  int ch = 0;
                  for (String det : details) {
                    Object prop = e.getProperty(det);
                    String toStr = ((CGAEField) f)
                        .getObjectText2(e, prop);
                    sb.append(toStr);
                    if (ch != details.length - 1) {
                      sb.append(":");
                    }
                    ch++;
                  }
                  res = sb.toString();
                } else {
                  res = e.getKey().toString();
                }
                return res;
              }
            });
          }
        } else {
          property = "";// <empty>
        }
      } else {
        property = "";// <empty>
      }

    } else if (f instanceof PGAEField) {
      property = e.getProperty(f.name);
    } else {
      property = e.getProperty(f.name);
    }
    if (property instanceof Collection<?>) {
      Collection c = (Collection) property;
      boolean remove = c.remove(null);
      if (remove) {
        c.add(new NullValue());
      }
    }
    binding.setValue(property, null);
    v.setBinding(binding);
    v.setLayoutData(GridDataFactory.fillDefaults().grab(true, true)
        .create());
    m.add(v);
    if (needIndexable) {
      addNotIndexableButton(binding, m, fm);
    }
    text.add(m);
    return binding;
View Full Code Here

  private static IBinding createMultiEdit(
      final com.google.appengine.api.datastore.Entity e,
      final Binding bnd, final BaseDataFacade facade, Container text,
      final Field f, final GAEField fm) {
    Container m = new Container();
    m.setLayout(new GridLayout(1, false));
    m.setCaption(f.getTitle());
    final ListEnumeratedValueSelector<Object> v = new ListEnumeratedValueSelector<Object>();
    m.add(new UniversalUIElement<ToolBar>(ToolBar.class, SWT.NONE) {

      protected ToolBar createControl(Composite conComposite) {
        ToolBarManager manager = new ToolBarManager();
        manager.add(new Action("New value") {
          {
            setImageDescriptor(AbstractUIPlugin
                .imageDescriptorFromPlugin(Activator.PLUGIN_ID,
                    "/icons/add_exc.gif"));
          }

          public void run() {
            if (f instanceof CGAEField) {
              CGAEField cgf = (CGAEField) f;
              BaseDataFacade fac = new BaseDataFacade(
                  cgf.keyKind, facade.getProject(), facade
                      .isDebug());
              fac.setNamespace(facade.getNamespace());
              DataStoreTableUI dstui = new DataStoreTableUI();
              dstui.setFacade(fac);
              Entity ent = new Entity(cgf.keyKind, e.getKey());
              Collection coll = ((Collection) ((HashMap) facade
                  .getChildren().get(cgf.getKeyKind())).get(e
                  .getKey()));
              if (coll != null && coll.size() != 0) {
                Entity old = (Entity) coll
                    .toArray(new Object[coll.size()])[coll
                    .size() - 1];
                for (Iterator<String> it = old.getProperties()
                    .keySet().iterator(); it.hasNext();) {
                  ent.setProperty(it.next(), "");
                }
              }
              ArrayList<Entity> select = new ArrayList();
              select.add(ent);
              fac.determineFields(select);
              // v.addValue(ent);
              dstui.open(ent, false, new IUpdateList() {

                public void update(Entity e) {
                  v.addValue(e);
                }
              });// ((Collection)((HashMap)facade.getChildren().get(cgf.getKeyKind())).get(e.getKey()));

            } else {
              Object firstElement = null;
              Binding bnd = new Binding(firstElement);
              bnd.setName("Edit");
              CompositeEditor m = new CompositeEditor(bnd);
              m.setLayoutManager(new HorizontalLayouter());
              TitledDialog dlg = new TitledDialog(m);
              GAEField singleField = fm.getSingleField();
              ApiProxy.setEnvironmentForCurrentThread(new FakeEnvironment(
                  e.getAppId()));
              Entity c = new Entity("A");

              if (fm instanceof CGAEField) {
                c = new Entity(fm.getKeyKind(), e.getKey());
                // Entity example =
              } else {
                c.setProperty(f.name, firstElement);
              }
              createBindings(c, m, bnd,
                  new Field[] { singleField }, facade);

              int open = dlg.open();
              if (open == Dialog.OK) {
                Object value = bnd.getBinding(f.name)
                    .getValue();
                if (value == null) {
                  value = new NullValue();
                }
                v.addValue(value);
              }
              bnd.dispose();

            }
          }
        });
        manager.add(new Action("Edit selected") {
          {
            setImageDescriptor(AbstractUIPlugin
                .imageDescriptorFromPlugin(Activator.PLUGIN_ID,
                    "/icons/text_edit.gif"));
          }

          public void run() {
            if (f instanceof CGAEField) {
              CGAEField cgf = (CGAEField) f;

              Object[] selected = v.getSelection().toArray();
              if (selected.length == 1) {
                BaseDataFacade fac = new BaseDataFacade(
                    cgf.keyKind, facade.getProject(),
                    facade.isDebug());
                fac.setNamespace(facade.getNamespace());
                DataStoreTableUI dstui = new DataStoreTableUI();
                final Entity sel = (Entity) selected[0];
                ArrayList<Entity> select = new ArrayList();
                select.add(sel);
                fac.determineFields(select);
                dstui.setFacade(fac);
                dstui.open(sel, false, new IUpdateList() {

                  public void update(Entity e) {
                    v.removeValue(sel);
                    v.addValue(e);
                  }
                });
              }
              return;
            } else {
              Object firstElement = v.getSelection()
                  .getFirstElement();
              Binding bnd = new Binding(firstElement);
              bnd.setName("Edit");
              CompositeEditor m = new CompositeEditor(bnd);
              TitledDialog dlg = new TitledDialog(m);
              GAEField singleField = fm.getSingleField();
              ApiProxy.setEnvironmentForCurrentThread(new FakeEnvironment(
                  e.getAppId()));
              Entity c = new Entity("A");
              if (firstElement instanceof NullValue) {
                c.setProperty(f.name, null);
              } else {
                c.setProperty(f.name, firstElement);
              }
              createBindings(c, m, bnd,
                  new Field[] { singleField }, facade);
              int open = dlg.open();
              if (open == Dialog.OK) {
                v.removeValue(firstElement);
                Object value = bnd.getBinding(f.name)
                    .getValue();
                if (value == null) {
                  value = new NullValue();
                }
                v.addValue(value);
              }
              bnd.dispose();
            }
          }
        });
        manager.add(new Action("Delete selected") {
          {
            setImageDescriptor(AbstractUIPlugin
                .imageDescriptorFromPlugin(Activator.PLUGIN_ID,
                    "/icons/delete.gif"));
          }

          @SuppressWarnings("unchecked")
          public void run() {
            final List selected = v.getSelection().toList();

            if (f instanceof CGAEField) {
              final CGAEField cgf = (CGAEField) f;
              BaseDataFacade fac = new BaseDataFacade(
                  cgf.keyKind, facade.getProject(), facade
                      .isDebug());
              fac.setNamespace(facade.getNamespace());
              fac.delete(selected.toArray(new Entity[selected
                  .size()]), new OperationCallback() {

                public void passed(Object object) {
                  Collection coll = (Collection) ((HashMap) facade
                      .getChildren()
                      .get(cgf.getKeyKind())).get(e
                      .getKey());
                  coll.removeAll(selected);
                  facade.updateChildren(e);
                  v.removeValues(selected);
                }

                public void failed(Exception exception) {
                  return;
                }
              });
              // facade.updateChildren(e);
            } else {
              v.removeValues(selected);
            }
          }
        });
        return manager.createControl(conComposite);
      }

    });

    v.setValueAsSelection(false);
    Binding binding = bnd.getBinding(f.name);
    binding.setReadOnly(false);
    Object property = null;
    if (f instanceof CGAEField) {

      HashMap hashMap = (HashMap) facade.getChildren().get(
          ((CGAEField) f).keyKind);
      if (hashMap != null) {
        Collection col = (Collection) (hashMap).get(e.getKey());
        if (col != null) {
          property = new ArrayList<Object>();
          for (Iterator i = col.iterator(); i.hasNext();) {
            Entity ent = (Entity) i.next();
            ((ArrayList<Object>) property).add(ent);
            v.setLabelProvider(new LabelProvider() {

              public String getText(Object element) {
                Entity e = (Entity) element;
                String res = "";

                String[] details = ((CGAEField) f)
                    .getKeyKindDetails();
                if (details != null && details.length != 0) {
                  StringBuilder sb = new StringBuilder();
                  int ch = 0;
                  for (String det : details) {
                    Object prop = e.getProperty(det);
                    String toStr = ((CGAEField) f)
                        .getObjectText2(e, prop);
                    sb.append(toStr);
                    if (ch != details.length - 1) {
                      sb.append(":");
                    }
                    ch++;
                  }
                  res = sb.toString();
                } else {
                  res = e.getKey().toString();
                }
                return res;
              }
            });
          }
        } else {
          property = new NullValue();// "<empty>";
        }
      } else {
        property = new NullValue();// "<empty>";
      }

    } else if (f instanceof PGAEField) {
      property = e.getProperty(f.name);
    } else {
      property = e.getProperty(f.name);
    }
    if (property instanceof Collection<?>) {
      Collection c = (Collection) property;
      boolean remove = c.remove(null);
      if (remove) {
        c.add(new NullValue());
      }
    }
    binding.setValue(property, null);
    v.setBinding(binding);
    v.setLayoutData(GridDataFactory.fillDefaults().grab(true, true)
        .create());
    m.add(v);
    text.add(m);
    return binding;
  }
View Full Code Here

    editor.add(m);
  }

  private static void createText(CompositeEditor editor, Container owner,
      final Binding binding, boolean needNullButton) {
    Container gr = new Container();
    gr.setText(binding.getName());
    gr.setCaption(binding.getName());
    gr.setLayoutManager(new OneElementOnLineLayouter());

    // CompositeEditor ce = new CompositeEditor();
    // ce.setLayoutManager(new OneElementOnLineLayouter());

    final ViewerTextElement tm = new ViewerTextElement() {
      protected void setValue(IBinding binding, Object value) {
        if (value instanceof Text) {
          Text c = (Text) value;
          super.setValue(binding, c.getValue());
        }
      }

      protected void doCommit(final IBinding binding2) {
        commitToBinding(new Text(getText()));
      }

    };
    tm.setWrapText(false);
    // ce.add(tm);
    gr.add(tm);

    if (needNullButton) {
      addIsNullButtonSelector(binding, gr, null);
    }

    owner.add(gr);
    gr.getLayoutHints().setGrabVertical(true);
    gr.getLayoutHints().setMinimumSize(new Point(200, 200));
    tm.setBinding(binding);
  }
View Full Code Here

TOP

Related Classes of com.onpositive.commons.elements.Container

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.