⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 itemmapservlet.java

📁 dspace 用j2ee架构的一个数字图书馆.开源程序
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
         * itemToAdd.getOwningCollection().getMetadata("name");         *  // hook up item, but first, does it belong already? TableRowIterator         * tri = DatabaseManager.query(context, "collection2item", "SELECT         * collection2item.* FROM collection2item WHERE " + "collection_id=" +         * myCollection.getID() + " AND item_id=" + itemToAdd.getID());         *          * if(tri.hasNext()) { request.setAttribute("message", "Item is already         * part of that collection!"); } else { // Create mapping         * myCollection.addItem( itemToAdd );         *  // set up a nice 'done' message request.setAttribute("message",         * "Item added successfully: <br> " + myTitle + " <br> From Collection:         * <br> " + ownerName);         *  }         *          * request.setAttribute("collection", myCollection);         *  // show this page when we're done jspPage = "itemmap-info.jsp";         *  // show the page JSPManager.showJSP(request, response, jspPage); }         * else { // Display an error } } else if( action.equals("Add Entire         * Collection") ) { int targetID = UIUtil.getIntParameter(request,         * "collection2import");         *          * Collection targetCollection = Collection.find(context, targetID);         *  // get all items from that collection and add them if not // already         * added         *  // get all items to be added ItemIterator i =         * targetCollection.getItems(); Map toAdd = new HashMap(); String         * message = "";         *          * while( i.hasNext() ) { Item myItem = i.next();         *          * toAdd.put(new Integer(myItem.getID()), myItem); }         *  // now see what we already have, removing dups from the 'toAdd' list         * i = myCollection.getItems();         *          * while( i.hasNext() ) { Item myItem = i.next(); Integer myKey = new         * Integer(myItem.getID());         *  // remove works even if key isn't present toAdd.remove(myKey); }         *  // what's left in toAdd should be added Iterator addKeys =         * toAdd.keySet().iterator();         *          * while( addKeys.hasNext() ) { Item myItem =         * (Item)toAdd.get(addKeys.next()); myCollection.addItem(myItem);         * message += " <br> Added item ID: " + myItem.getID(); }         *          * request.setAttribute("message", message);         * request.setAttribute("collection", myCollection);         *  // show this page when we're done jspPage = "itemmap-info.jsp";         *  // show the page JSPManager.showJSP(request, response, jspPage); }         */        else if (action.equals("Remove"))        {            // get item IDs to remove            String[] itemIDs = request.getParameterValues("item_ids");            String message = "remove";	    LinkedList removedItems = new LinkedList();            for (int j = 0; j < itemIDs.length; j++)            {                int i = Integer.parseInt(itemIDs[j]);		removedItems.add(itemIDs[j]);                Item myItem = Item.find(context, i);                // make sure item doesn't belong to this collection                if (!myItem.isOwningCollection(myCollection))                {                    myCollection.removeItem(myItem);                }            }            request.setAttribute("message", message);            request.setAttribute("collection", myCollection);	    request.setAttribute("processedItems", removedItems);            // show this page when we're done            jspPage = "itemmap-info.jsp";            // show the page            JSPManager.showJSP(request, response, jspPage);        }        else if (action.equals("Add"))        {            // get item IDs to add            String[] itemIDs = request.getParameterValues("item_ids");            String message = "added";	    LinkedList addedItems = new LinkedList();	                if (itemIDs == null)            {                message = "none-selected";            }            else            {                for (int j = 0; j < itemIDs.length; j++)                {                    int i = Integer.parseInt(itemIDs[j]);                    Item myItem = Item.find(context, i);                    if (AuthorizeManager.authorizeActionBoolean(context,                            myItem, Constants.READ))                    {                        // make sure item doesn't belong to this collection                        if (!myItem.isOwningCollection(myCollection))                        {                            myCollection.addItem(myItem);			    addedItems.add(itemIDs[j]);                        }                    }                }            }            request.setAttribute("message", message);            request.setAttribute("collection", myCollection);	    request.setAttribute("processedItems", addedItems);            // show this page when we're done            jspPage = "itemmap-info.jsp";            // show the page            JSPManager.showJSP(request, response, jspPage);        }        else if (action.equals("Search Authors"))        {            // find all items with a matching author string and not currently in            // this collection            // sorting by date would be ideal...            String myQuery = (String) request.getParameter("namepart");            TableRowIterator tri = DatabaseManager                    .query(                            context,                            "SELECT * from ItemsByAuthor WHERE sort_author like '%"                                    + myQuery.toLowerCase()                                    + "%' AND item_id NOT IN (SELECT item_id FROM collection2item WHERE collection_id="                                    + myCollection.getID() + ")");            Map items = new HashMap();            while (tri.hasNext())            {                TableRow tr = tri.next();                // now instantiate and pass items to 'Add' page                int itemID = tr.getIntColumn("item_id");                Item myItem = Item.find(context, itemID);                // only put on list if you can read item                if (AuthorizeManager.authorizeActionBoolean(context, myItem,                        Constants.READ))                {                    items.put(new Integer(itemID), myItem);                }            }            request.setAttribute("collection", myCollection);            request.setAttribute("browsetext", myQuery);            request.setAttribute("items", items);            request.setAttribute("browsetype", new String("Add"));            jspPage = "itemmap-browse.jsp";            JSPManager.showJSP(request, response, jspPage);        }        else if (action.equals("browse"))        {            // target collection to browse            int t = UIUtil.getIntParameter(request, "t");            Collection targetCollection = Collection.find(context, t);            // now find all imported items from that collection            // seemingly inefficient, but database should have this query cached            ItemIterator i = myCollection.getItems();            Map items = new HashMap();            while (i.hasNext())            {                Item myItem = i.next();                if (myItem.isOwningCollection(targetCollection))                {                    Integer myKey = new Integer(myItem.getID());                    items.put(myKey, myItem);                }            }            request.setAttribute("collection", myCollection);            request.setAttribute("browsetext", targetCollection                    .getMetadata("name"));            request.setAttribute("items", items);            request.setAttribute("browsetype", new String("Remove"));            // show this page when we're done            jspPage = "itemmap-browse.jsp";            // show the page            JSPManager.showJSP(request, response, jspPage);        }        context.complete();    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -