function actionDisconnect($signal, $slot, $to) { $model = Connect::model()->findByAttributes(array('signal' => $signal, 'slot' => $slot)); $model->delete(); $this->redirect(array('methodView', 'id' => $to)); }
function package(Package $package, $assoc) { $package->with('parent0, packages, classes'); $id = $this->package_id($package->id_package); $namespace = $this->package_id($package->parent); $this->open_uml_simple_element('Namespace.ownedElement'); $this->open_uml_element('Package', $id, $package->name, $namespace); $this->open_uml_simple_element('Namespace.ownedElement'); foreach ($package->packages as $c) { $this->package($c, $assoc); } foreach ($package->classes as $c) { $this->print_class($c, $assoc); } if ($assoc) { $ass = Association::model()->findAll(array('join' => 'Join class c on c.id_class = class_from', 'condition' => 'id_package = :idp', 'params' => array('idp' => $package->id_package))); foreach ($ass as $hole) { $this->association($hole, $id); } } $sig = Connect::model()->findAll(array('join' => 'Join method sl on sl.id_method = t.slot join class c on c.id_class = sl.id_class', 'condition' => 'c.id_package = :idp', 'params' => array('idp' => $package->id_package))); foreach ($sig as $segv) { $this->signal($segv, $id); } foreach ($package->packages as $child) { $dep = $child->get_dependencies(false); $child_id = $this->package_id($child->id_package); foreach ($dep as $d) { if ($d['id_from'] != $child->id_package) { continue; } $did = $this->generic_id('UMLDependency'); $dit = $this->package_id($d['id_to']); $this->open_uml_element('Dependency', "", $child_id, null, array('client' => $id, 'supplier' => $dit)); } } $this->close_element(); $this->close_element(); $this->close_element(); }