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

📄 uiutil.java

📁 Eclipse RCP下编写的工作管理软件代码
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                }
            });
            adapterListEvent(cellEdit, cursor, editor);
        }
        else {
            final Text cellEdit = new Text(cursor, SWT.LEFT);
            cellEdit.setFont(uc.getTv().getTable().getFont());
            adapterTextEvent(cellEdit, cursor, editor);
        }
        uc.setDirty(true);
    }

    /*Text的事件处理*/
    private static void adapterTextEvent(final Text cellEdit, final TableCursor cursor, final ControlEditor editor) {
        TableItem row = cursor.getRow();
        int column = cursor.getColumn();
        TableColumn tc=((Table)cursor.getParent()).getColumn(column);
        cellEdit.setText(row.getText(column));
        //在此判断是否显示当前时间以HH:MM 2004.04.27 levin
        if(ConfigHelper.showDateTip() && StringUtil.convertNull(cellEdit.getText()).equals("")){
            if (tc.getData().equals("kssj") || tc.getData().equals("jssj")){
                cellEdit.setText(StringUtil.getSysTime());
            }
            //如果存在上一行,则拷贝above.jssj --> self.kssj,默认开始时间前为序号
            if (tc.getData().equals("kssj")){
                int self=StringUtil.parseInt(row.getText( column -1));
                if(self > 1){
                    Table tt=(Table)cursor.getParent();
                    cellEdit.setText(StringUtil.convertNull(tt.getItem(self -2).getText(column +1)));
                }
            }
            //如果存在下一行,则拷贝below.kssj --> self.jssj, 2006.01.09 levin
            if (tc.getData().equals("jssj")){
                int self=StringUtil.parseInt(row.getText( column - 2));
                Table tt=(Table)cursor.getParent();
                if(self < tt.getItemCount()){
                    cellEdit.setText(StringUtil.convertNull(tt.getItem(self).getText(column-1)));
                }
            }

        }
        cellEdit.selectAll();
        cellEdit.addTraverseListener(new TraverseListener() {
            public void keyTraversed(TraverseEvent e) {
                if (e.detail == SWT.TRAVERSE_TAB_NEXT
                        || e.detail == SWT.TRAVERSE_TAB_PREVIOUS
                        || e.detail == SWT.TRAVERSE_RETURN) {
                	synTextCellValue(cursor, cellEdit);
                	//后移或前移
                    focusNext(e, cursor);
                    //e.doit = false;
                }
                if (e.detail == SWT.TRAVERSE_ESCAPE) {
                    cellEdit.dispose();
                }
            }
        });
        cellEdit.addFocusListener(new FocusAdapter() {
            public void focusLost(FocusEvent e) {
                synTextCellValue(cursor, cellEdit);
            }
        });
        editor.setEditor(cellEdit);
        cellEdit.setFocus();
    }

    /**
     * List的事件处理
     */
    private static void adapterListEvent(final List cellEdit, final TableCursor cursor, final ControlEditor editor) {
        TableItem row = cursor.getRow();
        int column = cursor.getColumn();
        String org = row.getText(column);
        if (!StringUtil.convertNull(org).equals(""))
            for (int i = 0; i < cellEdit.getItemCount(); i++)
                if (cellEdit.getItem(i).equals(org))
                    cellEdit.setSelection(i);
        //修正没有选中时focus的错误
        if (cellEdit.getSelectionIndex() == -1)
            cellEdit.setSelection(0);
        cellEdit.showSelection();
        cellEdit.addTraverseListener(new TraverseListener() {
            public void keyTraversed(TraverseEvent e) {
                if (e.detail == SWT.TRAVERSE_TAB_NEXT
                        || e.detail == SWT.TRAVERSE_TAB_PREVIOUS
                        || e.detail == SWT.TRAVERSE_RETURN) {
                    TableItem row = cursor.getRow();
                    int column = cursor.getColumn();
                    row.setText(column, cellEdit.getSelection()[0]);
                    cellEdit.dispose();
                    //后移或前移
                    focusNext(e, cursor);
                    //e.doit = false;
                }
                if (e.detail == SWT.TRAVERSE_ESCAPE) {
                    cellEdit.dispose();
                }
            }
        });
        cellEdit.addFocusListener(new FocusAdapter() {
            public void focusLost(FocusEvent e) {
                TableItem row = cursor.getRow();
                int column = cursor.getColumn();
                row.setText(column, cellEdit.getSelection()[0]);
                cellEdit.dispose();
            }
        });
        editor.setEditor(cellEdit);
        cellEdit.setFocus();
    }

    private static void focusNext(TraverseEvent e, final TableCursor cursor) {
        TableItem row = cursor.getRow();
        int column = cursor.getColumn();
        if (e.detail != SWT.TRAVERSE_TAB_PREVIOUS)
            cursor.setSelection(row, column == ((Table)cursor.getParent()).getColumnCount() - 1 ? column : column + 1);
        else
            cursor.setSelection(row, column == 0 ? column : column - 1);
    }

	private static Object instance(final Class clazz) {
		try {
			return clazz.newInstance();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	public static ITableFolder getTableFolder() {
		if(tableFolder==null)
			tableFolder=new DefaultTableFolder();
		return tableFolder;
	}

	//配置修改后的重绘页面
	public static void init() {
//		Composite composite=sf.getParent();
//		int indexEditor=tfEditor.getSelectionIndex();
//		int indexTool=tfTool.getSelectionIndex();
//		sf.dispose();
//	    initContentPane(UiWork.self,composite);
//	    tfEditor.setSelection(indexEditor);
//	    tfTool.setSelection(indexTool);
//	    composite.layout();
	}
	//取某天的计划列表
	private static Map<String,String[]> plansCache=new HashMap<String,String[]>(1);	//缓存一个计划列表
	
	public static Map<String, String[]> getPlansCache() {
		return plansCache;
	}

	private static String[] getPlans(String day){
		if(plansCache.get(day) != null)
			return plansCache.get(day);
		try {
			java.util.List list=DMFactory.getDataManager(Personal.class).readList(StringUtil.getWeek(day));
			String[] plans=new String[list.size()+1];
			plans[0]="";
			for(int i=1;i<plans.length;i++)
				plans[i]=((Personal)list.get(i-1)).task;
			plansCache.clear();
			plansCache.put(day,plans);
			return plans;
		} catch (DataException e) {
			return new String[]{""};
		}
	}
	
	//当前的UiCore
	public static UiCore getInstance(){
		if(PspEditor.self != null)
			return PspEditor.self;
		return null;
	}
	
	//保存位置
	public static void savePosition(){
		IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
		PartSite part = (PartSite) activePage.getActivePart().getSite();
		//2007010 如果当前透视图不是PSP,则不保存位置
		if(! "net.sf.psp".equals(part.getPluginId()))
			return ;
		
		// 取表头的间隔
		Table table = getInstance().getTv().getTable();
		TableColumn[] tcs = table.getColumns();
		int[] headerSize = new int[tcs.length];
		for (int i = 0; i < headerSize.length; i++) {
			headerSize[i] = tcs[i].getWidth();
		}
		// 取窗体大小
		Point point = table.getShell().getSize();
		int[] windowSize = new int[] { point.x, point.y };
		// 取窗体位置
		Point point2 = table.getShell().getLocation();
		int[] windowLocation = new int[] { point2.x, point2.y };

		Properties pr = ConfigHelper.getPropList();
		pr.setProperty("work.headersize", StringUtil.int2string(headerSize));
		pr.setProperty("work.windowsize", StringUtil.int2string(windowSize));
		pr.setProperty("work.windowlocation", StringUtil.int2string(windowLocation));
		pr.setProperty("work.verticalsize", StringUtil.int2string(UiUtil.getVerticalSize()));
		pr.setProperty("work.horizontalsize", StringUtil.int2string(UiUtil.getHorizontalSize()));
		// 保存各btv的位置
		for (ITableEditor editor : UiUtil.getTableFolder().getEditors()) {
			BindedTableViewer btv = editor.getViewer();
			if (btv != null) {
				String name = btv.getModel().createRow().getClass().getSimpleName().toLowerCase();
				TableColumn[] tc = btv.getTable().getColumns();
				Map map=new HashMap(tc.length);
				for (int k = 0; k < tc.length; k++) {
					map.put(tc[k].getData(), tc[k].getWidth());
				}
				pr.setProperty(name + ".headersize", StringUtil.fromMap(map, ";"));
			}
		}
		if(UiUtil.getInstance() instanceof PspEditor){
			// 保存view的相对位置
			ViewStack stack = (ViewStack) part.getPane().getContainer();
			ViewSashContainer container = (ViewSashContainer) stack.getContainer();
			XMLMemento memento = XMLMemento.createWriteRoot("DummyStatus");
			container.saveState(memento);
			IMemento[] children = memento.getChildren(IWorkbenchConstants.TAG_INFO);
			//保持UiPerspective布局不变情况下,只对最后两个布局信息感兴趣
			//垂直间隔
			IMemento vchild = children[children.length -2];
			int vleft= vchild.getInteger(IWorkbenchConstants.TAG_RATIO_LEFT);
			int vright = vchild.getInteger(IWorkbenchConstants.TAG_RATIO_RIGHT);
			pr.setProperty("work.verticalsize", StringUtil.int2string(new int[]{vleft,vright}));
			//水平间隔
			IMemento hchild = children[children.length -1];
			int hleft= hchild.getInteger(IWorkbenchConstants.TAG_RATIO_LEFT);
			int hright = hchild.getInteger(IWorkbenchConstants.TAG_RATIO_RIGHT);
			pr.setProperty("work.horizontalsize", StringUtil.int2string(new int[]{hleft,hright}));
		}
		ConfigHelper.store();		
	}
	
    //取表头名称
    public static String[] getHeaderMc() {
        return new Work().getFieldDescs();
    }

    //取表头简称
    public static String[] getHeaderJc() {
        return new Work().getFieldNames();
    }
    
    public static String getToDoList() {
        StringBuffer sb = new StringBuffer();
        try {
            BufferedInputStream bis = new BufferedInputStream(URLUtil.getResourceURL("docs/readme.txt").openStream());
            byte[] b = new byte[bis.available()];
            bis.read(b);
            sb.append(new String(b));
            bis.close();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
        return sb.toString();
    }
}
	
	

⌨️ 快捷键说明

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