Exemplo n.º 1
0
void BrowserArtifact::menu()
{
    QMenu m(name,0);
    QMenu clsubm(0);
    QMenu gensubm(0);
    QMenu editsubm(0);
    QMenu roundtripbodysubm(0);
    QMenu roundtripsubm(0);
    QMenu toolm(0);
    QString cpp_h_path;
    QString cpp_src_path;
    QString java_path;
    QString php_path;
    QString python_path;
    QString idl_path;

    MenuFactory::createTitle(m, def->definition(FALSE, TRUE));
    m.addSeparator();

    if (!deletedp()) {
        if (!is_edited) {
            MenuFactory::addItem(m, QObject::tr("Edit"), 0,
                                 QObject::tr("to edit the <i>artifact</i>, \
                                             a double click with the left mouse button does the same thing"));

                                             if (!is_read_only && (edition_number == 0)) {
                                                 m.addSeparator();
                                                 MenuFactory::addItem(m, QObject::tr("Delete"), 1,
                                                 QObject::tr("to delete the <i>artifact</i>. \
                                                 Note that you can undelete it after"));
                                             }
        }
Exemplo n.º 2
0
void ArtifactCanvas::menu(const QPoint&) {
  Q3PopupMenu m(0);
  Q3PopupMenu gensubm(0);
  Q3PopupMenu toolm(0);
  int index;
  
  m.insertItem(new MenuTitle(browser_node->get_data()->definition(FALSE, TRUE), m.font()), -1);
  m.insertSeparator();
  m.insertItem(TR("Upper"), 0);
  m.insertItem(TR("Lower"), 1);
  m.insertItem(TR("Go up"), 15);
  m.insertItem(TR("Go down"), 16);
  m.insertSeparator();
  m.insertItem(TR("Add related elements"), 17);
  m.insertSeparator();
  m.insertItem(TR("Edit drawing settings"), 2);
  m.insertSeparator();
  m.insertItem(TR("Edit artifact"), 3);
  m.insertSeparator();
  m.insertItem(TR("Select in browser"), 4);
  if (linked())
    m.insertItem(TR("Select linked items"), 5);
  m.insertSeparator();
  if (browser_node->is_writable()) {
    if (browser_node->get_associated() !=
	(BrowserNode *) the_canvas()->browser_diagram())
      m.insertItem(TR("Set associated diagram"),6);
    
    if (browser_node->get_associated())
      m.insertItem(TR("Remove diagram association"),12);
  }
  m.insertSeparator();
  m.insertItem(TR("Remove from diagram"), 7);
  if (browser_node->is_writable())
    m.insertItem(TR("Delete from model"), 8);
  m.insertSeparator();

  bool cpp = GenerationSettings::cpp_get_default_defs();
  bool java = GenerationSettings::java_get_default_defs();
  bool php = GenerationSettings::php_get_default_defs();
  bool python = GenerationSettings::python_get_default_defs();
  bool idl = GenerationSettings::idl_get_default_defs();

  if (cpp || java || php || python || idl)
    m.insertItem(TR("Generate"), &gensubm);
  
  if (Tool::menu_insert(&toolm, UmlArtifact, 20))
    m.insertItem(TR("Tool"), &toolm);
  
  if (cpp)
    gensubm.insertItem("C++", 9);
  if (java)
    gensubm.insertItem("Java", 10);
  if (php)
    gensubm.insertItem("Php", 13);
  if (python)
    gensubm.insertItem("Python", 14);
  if (idl)
    gensubm.insertItem("Idl", 11);
  
  switch (index = m.exec(QCursor::pos())) {
  case 0:
    upper();
    modified();	// call package_modified()
    return;
  case 1:
    lower();
    modified();	// call package_modified()
    return;
  case 15:
    z_up();
    modified();	// call package_modified()
    return;
  case 16:
    z_down();
    modified();	// call package_modified()
    return;
  case 2:
    edit_drawing_settings();
    return;
  case 3:
    browser_node->open(TRUE);
    return;
  case 4:
    browser_node->select_in_browser();
    return;
  case 5:
    the_canvas()->unselect_all();
    select_associated();
    return;
  case 6:
    ((BrowserArtifact *) browser_node)
      ->set_associated_diagram((BrowserDeploymentDiagram *)
			       the_canvas()->browser_diagram());
    return;
  case 12:
    ((BrowserArtifact *) browser_node)
      ->set_associated_diagram(0);
    return;
  case 7:
    //remove from diagram
    delete_it();
    break;
  case 8:
    //delete from model
    browser_node->delete_it();	// will delete the canvas
    break;
  case 9:
    browser_node->apply_shortcut("Generate C++");
    return;
  case 10:
    browser_node->apply_shortcut("Generate Java");
    return;
  case 11:
    browser_node->apply_shortcut("Generate Idl");
    return;
  case 13:
    browser_node->apply_shortcut("Generate Php");
    return;
  case 14:
    browser_node->apply_shortcut("Generate Python");
    return;
  case 17:
    ((UmlCanvas *) canvas())->get_view()
      ->add_related_elements(this, TR("artifact"), TRUE, FALSE);
    return;
  default:
    if (index >= 20)
      ToolCom::run(Tool::command(index - 20), browser_node);
    return;
  }
  
  package_modified();
}