summaryrefslogblamecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java
blob: db1855d544596f29d71da686d52d2597b968ba9f (plain) (tree)
1
2
3
4
5
6
7
8
9
10

                                      

                                  

                      



                                                           

                                         

                                               
                                     
                                                      
                                                      


                                                         
                                                                  
                                                 
                                            





                                                            


















                                                                                     



                                                                                         
                                                                                                                   
                                                                                                                  
                                                                    



























                                                                                                
                                                                                    
                                                                                                  




                                                                                

                                                                                          


























                                                                                  
















                                                                                       
         
 
                                       
                                                                         
 




                                                









                               
 
package org.openslx.dozmod.gui.window;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.swt.events.KeyAdapter;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Shell;
import org.openslx.bwlp.thrift.iface.ImagePermissions;
import org.openslx.bwlp.thrift.iface.ImageSummaryRead;
import org.openslx.dozmod.gui.helper.ImageListComparator;
import org.openslx.dozmod.gui.helper.ImageListFilter;
import org.openslx.dozmod.gui.helper.TableHelper;
import org.openslx.dozmod.gui.window.layout.ImageListWindowLayout;
import org.openslx.dozmod.gui.wizard.ImageWizard;
import org.openslx.dozmod.thrift.ImageCache;

public class ImageListWindow extends ImageListWindowLayout {

	public ImageListWindow(final Shell mainShell) {
		super(mainShell);

		// Comparator for column sorting
		ImageListComparator comparator = new ImageListComparator();
		tableViewer.setComparator(comparator);
		// creating the columns with sorting functionality through comparator
		TableHelper.createImageTableColumns(tableViewer);

		// filter the objects in the table depending on the search field
		searchTextField.addKeyListener(new KeyAdapter() {
			public void keyReleased(KeyEvent ke) {
				filter.setSearchText(searchTextField.getText());
				tableViewer.refresh();
			}

		});

		// apply object filtering
		filter = new ImageListFilter();
		tableViewer.addFilter(filter);

		// the listeners to set the detailed info of the selected image
		tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
			@Override
			public void selectionChanged(SelectionChangedEvent event) {
				IStructuredSelection selection = (IStructuredSelection) tableViewer.getSelection();
				ImageSummaryRead selectedElement = (ImageSummaryRead) selection.getFirstElement();
				if (selectedElement == null) return;
				String imageName = selectedElement.getImageName();
				if (imageName == null) {
					imageSelectedNameLabel.setText("Unknown");
				} else {
					imageSelectedNameLabel.setText(imageName);
				}

				// set the image
				String imageBaseId = selectedElement.getImageBaseId();
				if (imageBaseId == null) {
					idInfo.setText("Unknown");
				} else {
					idInfo.setText(imageBaseId);
				}

				// set the current version of the image
				String currentVersionId = selectedElement.getCurrentVersionId();
				if (currentVersionId == null) {
					versionInfo.setText("Unknown");
				} else {
					versionInfo.setText(currentVersionId);
				}

				// set the time, the image has last been updated
				long unixTimestamp = selectedElement.getUpdateTime();
				if (unixTimestamp == 0) {
					lastUpdateInfo.setText("Unknown");
				} else {
					Date date = new Date(unixTimestamp * 1000L);
					SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
					String formattedDate = sdf.format(date);
					lastUpdateInfo.setText(formattedDate);
				}

				// info about the image permissions
				ImagePermissions p = selectedElement.getUserPermissions();
				if (p != null) {
					String s = p.toString();
					if (s == null) {
						permissionInfo.setText("Unknown");
					} else {
						permissionInfo.setText(s);
					}
				} else {
					permissionInfo.setText("Unknown");
				}

				// the owner id of the selected image
				String ownerId = selectedElement.getOwnerId();
				if (ownerId != null) {
					ownerInfo.setText(ownerId);
				} else {
					ownerInfo.setText("Unknown");
				}

				// set the template info
				if (selectedElement.isTemplate) {
					templateInfo.setText("ja");
				} else {
					templateInfo.setText("Nein");
				}
			}
		});

		newButton.addSelectionListener(new SelectionAdapter() {
			@Override
			public void widgetSelected(SelectionEvent e) {
				ImageWizard wizard = new ImageWizard(false);
				WizardDialog wd = new WizardDialog(getShell(), wizard);
				wd.open();
			}
		});

		editButton.addSelectionListener(new SelectionAdapter() {
			@Override
			public void widgetSelected(SelectionEvent e) {
				ImageWizard wizard = new ImageWizard(true);
				WizardDialog wd = new WizardDialog(getShell(), wizard);
				wd.open();
			}
		});
	}

	private boolean refreshList() {
		List<ImageSummaryRead> imageList = ImageCache.get(false);

		tableViewer.setInput(imageList);
		tableViewer.refresh();
		return true;
	}

	@Override
	public boolean hide() {
		return true;
	}

	@Override
	public void show() {
		refreshList();
	}

}